You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中执行Linux test命令并获取退出码且避免异常?

在Python中执行test命令且不抛出异常的方法

我来帮你解决这个问题~你遇到的报错是因为test是Shell的内置命令,默认情况下subprocess.call()不会启动Shell来执行命令,所以它找不到test这个"可执行文件",才会抛出异常。下面给你两种可行的解决思路:

方法一:通过Shell执行命令

给subprocess.call()加上shell=True参数,让命令在Shell环境中运行,这样就能识别test这个内置命令了,同时也能正常获取退出码:

import subprocess
# 执行test命令,通过shell环境运行
exit_code = subprocess.call('test -d a', shell=True)
# 退出码0表示目录存在,1表示不存在
print(f"命令退出码:{exit_code}")

方法二:用Python原生方法替代Shell命令

其实Python本身就有判断目录是否存在的内置方法,完全不需要调用Shell的test命令,这种方式更符合Python的编码习惯,而且跨平台性更好:

import os
# 判断目录a是否存在
dir_exists = os.path.isdir('a')
# 转换成和test命令一致的退出码:存在为0,不存在为1
exit_code = 0 if dir_exists else 1
print(f"等效退出码:{exit_code}")

内容的提问来源于stack exchange,提问作者Dims

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:25:14