Jui*_*icy 5 python linux subprocess file
如果可能的话,我正在寻找更好的方法来做到这一点:
import subprocess
f = open('temp.file', 'w+')
f.write('hello world')
f.close()
out = subprocess.check_output(['cat', 'temp.file'])
print out
subprocess.check_output(['rm', 'temp.file'])
Run Code Online (Sandbox Code Playgroud)
在此示例中,我正在创建一个文件并将其作为输入传递给cat(实际上不是cat我正在运行,而是解析输入文件的其他程序pcap)。
我想知道的是,在 Python 中是否有一种方法可以创建一个包含某些内容的“类文件对象”,并将这个类文件对象通过管道作为命令行程序的输入。如果可能的话,我认为这比将文件写入磁盘然后删除该文件更有效。
如果程序配置为读取stdin,则可以使用Popen.communicate:
>>> from subprocess import Popen, PIPE
>>> p = Popen('cat', stdout=PIPE, stdin=PIPE, stderr=PIPE)
>>> out, err = p.communicate(input=b"Hello world!")
>>> out
'Hello world!'
Run Code Online (Sandbox Code Playgroud)