基本上,我想将os.system结果输出到基于sys.argv输入的文件。请参阅下面的代码。它抛出了错误:SyntaxError:语法无效。我的猜测是输出运算符>不接受变量?
#!/usr/bin/python
import os
import sys
nfile = sys.argv[1]
intfile=('/folder/folder/%s/%s.txt' % (nfile, nfile))
if os.path.isfile(intfile): # if file exist remove
os.remove(intfile)
else:
os.system('sudo ovs-vsctl list-ports %s > %s' % (nfile, intfile)
答案 0 :(得分:2)
os.system
不赞成。 subprocess
模块比os.system()
更清晰,更安全,更强大。
import subprocess
with open(intfile, 'w') as outfile:
subprocess.call(['sudo', 'ovs-vsctl', 'list-ports', nfile], stdout=outfile)