Python3:OS系统捕获对文件的读取/写入

时间:2019-03-13 09:12:00

标签: python python-3.x subprocess

我正在编写一个需要使用第三方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流结果作为脚本返回而无需读取/写入文件?只是字符串解析?

1 个答案:

答案 0 :(得分:0)

脚本将其输出返回到stdout,而py脚本将通过PIPE读取

with Popen(["your_script_here"], stdout=PIPE) as proc:
    log.write(proc.stdout.read())