我的头衔可能会产生误导,因为这只是我提问的一部分。 我当前的代码如下所示,它没有完成,因为我不适合使用for循环
import os
import subprocess
listfile = []
path = "C:\\Users\\A\\Desktop\\Neuer Ordner (3)"
for f in os.listdir(path):
if f.endswith(".par"):
listfile.append(f)
print listfile
它的输出如下所示:
C:\app\Tools\exam\Python25>python nwe.py
['abc.par', 'abc2.par', 'abc3.par', 'abc4.par', 'abc5.par', 'abc6.par', 'abc7.pa
r', 'abc8.par', 'abc9.par']
现在我必须调用一个perl文件,用参数说“Newperl.pl” arg1为abc.par,arg2为abc.svl arg1为abc2.par,arg2为abc2.svl arg1为abc3.par,arg2为abc3.svl
它必须取所有以“.par”扩展名结尾的文件,并将文件名作为参数传递,同时将“.par”添加到第一个参数,将“.svl”添加到第二个参数。 我可以使用下面的那个进行循环。
for i in range(0,len(listfile), 1)
newcode = subprocess.call()
第二行调用perl文件,但我不确定如何拆分“.par”并再次添加“.par”和“.svl”并一次传递一个。 任何逻辑或帮助都是适当的
答案 0 :(得分:0)
您可以按如下方式编写子进程调用:
import os
for l in listfile:
newcode = subprocess.call("perl newperl.pl "+l+" "+os.path.splitext(l)[0]+'.svl')
os.path.splittext
删除par文件的扩展名并添加svl扩展名。