0

基本上,我想将 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)
4

1 回答 1

2

os.system不赞成。该subprocess模块更清洁、更安全且功能强大,与os.system().

import subprocess
with open(intfile, 'w') as outfile:
    subprocess.call(['sudo', 'ovs-vsctl', 'list-ports', nfile], stdout=outfile)
于 2013-08-12T12:00:14.010 回答