如何在Popen字符串中使用文件对象作为参数(文件只是一个变量,不是实际文件)

2024-10-01 19:16:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在将一些bash脚本转换为python,这些脚本主要用于运行命令行工具

我意识到Popen是推荐的方法,但是如果我尝试下面描述的方法,我会出错,所以请有人解释一下这个简单的例子

bash代码:

varA = 50
command1 > file.foo
echo $varA | command2 file.foo

python代码:

varA=50
com1 = Popen('command1',stdin=PIPE, stdout=PIPE)
com1out = com1.stdout  #NOTE com1out is of 'file' type

com2 = Popen('command2  %s' % com1out),stdin=varA, stdout=PIPE)

Tags: 方法代码脚本bashfoostdinstdoutfile
1条回答
网友
1楼 · 发布于 2024-10-01 19:16:57

shell代码

command1 > file.foo
echo $varA | command2 file.foo

使用常规文件file.foo,而command2需要此类文件的名称作为参数,因此直接转换为Python是:

from subprocess import *
call('command1', stdout=open('file.foo', 'w'))
Popen(['command2', 'file.foo'], stdin=PIPE).communicate(str(varA)+'\n')

相关问题 更多 >

    热门问题