2
我有以下(簡化的)代碼:NamedTemporaryFile不能從命令行acessed
with NamedTemporaryFile() as f:
f.write(zip_data)
f.flush()
subprocess.call("/usr/bin/7z x %s" % f.name)
它與以下錯誤模具:
Traceback (most recent call last):
File "decrypt_resource.py", line 70, in <module>
unpack(sys.argv[2])
File "decrypt_resource.py", line 28, in unpack
print(subprocess.check_output(cmd))
File "/usr/lib/python2.7/subprocess.py", line 568, in check_output
process = Popen(stdout=PIPE, *popenargs, **kwargs)
File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1308, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
然而,如果我使用NamedTemporaryFile(delete=False)
,然後打印&執行命令,它的工作。這裏有什麼問題?
我的系統是一個內核爲3.9.5-1-ARCH
的ArchLinux。
哦,我真是個白癡!我忘了'shell = True'。我回到了你的(更好的)列表解決方案,它完美地工作。感謝您及時的回覆。 – javex