2015-11-05 2 views
0

Мое название может вводить в заблуждение, так как это всего лишь часть моего вопроса. Мой текущий код, как показано ниже, она не завершена, поскольку я не очень хорошо с циклВызов файла perl с аргументами из цикла 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» с arg uments ARG1 как abc.par и arg2, как abc.svl arg1 как abc2.par и arg2 как abc2.svl arg1 как abc3.par и arg2 как abc3.svl

Он должен принимать все файлы, которые заканчиваются с расширением «.par» и передать имя файла в качестве аргумента при добавлении «.par» к 1-му аргументу и «.svl» ко второму аргументу. Я могу использовать приведенный ниже для цикла.

for i in range(0,len(listfile), 1) 
newcode = subprocess.call() 

вторая строка вызывает файл Perl, но я не уверен, как в том, как расколоть «.par» и добавить «.par» и «.svl» снова и пройти каждый по одному. какая-то логика или помощь будет appriciated

ответ

0

Вы можете написать свой подпроцесс вызов, как показано ниже:

import os 
for l in listfile: 
    newcode = subprocess.call("perl newperl.pl "+l+" "+os.path.splitext(l)[0]+'.svl') 

os.path.splittext удалить расширение для пар файлов и добавляет SVL расширение.

+0

Спасибо! помог. – Ashok

Смежные вопросы