我正在编写一个需要使用第三方shell脚本的应用程序。
此shell脚本some-script
处理输入文件--ifile
,并将结果保存在输出文件--ofile
中。
所以目前我可以写入/读取tmp文件,然后将其删除
import os
ifile_name = '/tmp/ifile.txt'
ofile_name = '/tmp/ofile.txt'
with open(ifile_name, 'w') as f:
# write data to ifile for 'some-script'
# format command
command = 'some-script --ifile {ifile} --ofile {ofile}'.format(
ifile=ifile_name,
ofile=ofile_name
)
os.system(command)
with open(ofile_name, 'r') as f:
# read in data from ofile
# clean up and delete tmp files
有没有一种方法可以直接将python数据传递到--ifile
(例如,通过'\n'.join(arr)
)并让--ofile
流结果作为脚本返回而无需读取/写入文件?只是字符串解析?
答案 0 :(得分:0)
脚本将其输出返回到stdout,而py脚本将通过PIPE读取
with Popen(["your_script_here"], stdout=PIPE) as proc:
log.write(proc.stdout.read())