导入子流程
def execCommand(cmd):
try:
proc = subprocess.Popen(
cmd,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
out, err = proc.communicate()
return proc.returncode, out, err
except:
print "failed"
return -1, '', ''
if __name__ == '__main__':
res, out, error = execCommand(["mkdir", "-p", "/tmp/newdir/", "&&", "touch", "/tmp/newdir/myfile.txt"])
上面的touch命令生成myfile.txt作为目录而不是文件,有人可以解释原因吗?
答案 0 :(得分:0)
根本不要使用subprocess
。您运行的外部命令包装了Python可以调用的相同库调用。
import os
os.makedirs("/tmp/newdir")
with open("/tmp/newdir/myfile.txt", "w"):
pass
如果您确实需要临时文件,请考虑使用tempfile
模块来安全地创建文件。