Как вызвать .py на всех XML-файлах? - PullRequest
0 голосов
/ 13 июня 2018

Я вызываю .py внутри скрипта Python для чтения .xml файлов.Мой код выглядит так:

import os
import sys
import subprocess


subprocess.call(["python", "/home/sky/DBT/test.py", "--host=PC", "--file=/home/sky/data/myfile.xml"])

для одного .xml файла, он работает отлично.Но когда я хочу запустить мои .py на всех моих .xml файлах, это не работает.Я пробовал этот цикл:

for f in ("/home/sky/data/*.xml"):
  subprocess.call(["python", "/home/sky/DBT/test.py", "--host=PC", "--file=f"])

, но он не работает для всех файлов .xml в моем каталоге.Что не так с моим кодом?

Спасибо

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Перво-наперво:

  1. В цикле for вы перебираете строку "/home/sky/data/*.xml".Таким образом, переменная f указывает на один символ внутри строки.
  2. В "--file = f", "f" это просто символ внутри строки "--file = f".

Для решения вашей проблемы вы должны сделать что-то вроде

for filename in os.listdir(directory):

, где 'directory' - это ваша папка, а filename - файл, который вам нужен.Обратите внимание, что вы должны проверить имя файла как XML-файл.

0 голосов
/ 13 июня 2018

Попробуйте:

import os
import sys
import subprocess

path = "/home/sky/data/"
for filename in os.listdir(path):   #Iterate Your DIR
    if filename.endswith(".xml"):    #Check if file is XML
        subprocess.call(["python", "/home/sky/DBT/test.py", "--host=PC", "--file=/home/sky/data/{0}".format(filename)])   #Execute Command
...