好的,我已经发现了如何使用这个posthow to run my own external command in python script在Python中执行复杂的命令
import shlex
import subprocess
proc = subprocess.Popen(shlex.split('gr_cp -option=90 inputfilename outputfilename'))
proc.communicate()
它确实有效,但在我的例子中,我正在执行一个循环,inputfilename
和outputfilename
的名称在每次迭代中都会更改。我尝试过这个解决方案,但它不起作用,因为它无法识别inputfilename
在循环中,inputfilename
是mbr{:03}_20161110.grb1.format(i)
,其中i
在从1到21的循环中运行
多谢各位
编辑:根据请求,下面是循环的方式:
for i in range(1, 21):
dn = './mbr{:03}'.format(i)
inputfilename = 'mbr{:03}_2016111000.grb1'.format(i)
os.chdir(dn)
#do some things copying and concatenating files
proc = subprocess.Popen(shlex.split('gr_cp -option=90 inputfilename outfilename'))
proc.communicate()
os.chdir('..')
循环探索目录mbr001
到mbr020
,并将inputfile
命名为每个父目录
gr_cp是一个命令行工具,它从inputfilename
到outputfilename
提取一些变量(就像一个过滤器)。它类似于任何其他shell命令。问题是在循环中,它不标识inputfilename
假设在循环
inputfilename
和outputfilename
中有两个变量,分别保存输入和输出文件的名称,只需执行以下操作:(因为
shlex.split
的输出是一个字符串列表,所以您可以只添加列表的最后成员…)相关问题 更多 >
编程相关推荐