我有一个 python 脚本,它遍历一些数据并每次调用一个子进程,将数据作为进程参数的一部分传入。我想将每个调用的输出附加到一个文件中,以便稍后在脚本中使用该输出。
我曾尝试使用 os.system 并在命令后放置“>> outfile.txt”。但是,在这种情况下,由于某种原因,第一次迭代会正常输出到 shell,并且只有最后一次迭代会附加到文件中。
def runSpecificList( streamList ):
for line in open( streamList, 'r' ):
getSpecificStream( 'list.txt', line )
def getSpecificStream( testList, id ):
os.system( os.environ['path'] + r'\sub\path\to\program.exe argument' + id + ' >> ' + list )
我发现这可以使用 subprocess.popen() 来实现,所以我尝试了......但是,这次第一次迭代被写入文件,其余时间写入文件的内容似乎是随机片段. 而且,由于某种原因,我后来无法在脚本中正确使用该文件。
def getSpecificStream( testList, id ):
log = open( testList, 'a' )
subproc.Popen([os.environ['path'] + r'\sub\path\to\program.exe', 'argument' + id], stdout = log, stderr = log, shell = True )
有人知道我做错了什么吗?