我正在运行一个在 wav 文件上运行的 web 服务,但我不想只允许任何上传,所以我首先使用以下代码检查上传文件的持续时间:
os.chdir("/home/me/bin")
proc = subprocess.Popen(['duration',wav],stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=False)
out, errors = proc.communicate()
time = int(float(out.strip()))
if time > MAX_TIME:
sys.exit(1)
这几个月来一直运行良好,但最近(迁移后,我应该添加)我收到以下错误:
Traceback (most recent call last):
File "/home/me/webservice.py", line 100, in <module>
proc = subprocess.Popen(['duration',wav],stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=False)
File "/usr/lib64/python2.6/subprocess.py", line 639, in __init__
errread, errwrite)
File "/usr/lib64/python2.6/subprocess.py", line 1228, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
这个错误似乎主要是由于命令使用字符串而不是列表引起的,但这里不是这种情况。当我尝试在单独的脚本中重现此错误时,我不能。
有人知道这里可能是什么原因吗?