如何在所有xml文件上调用.py?

时间:2018-06-13 12:50:51

标签: python xml operating-system subprocess sys

我在python脚本中调用.py来读取.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 :(得分:1)

尝试:

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

答案 1 :(得分:0)

首先要做的事情:

  1. 在for循环中,您将遍历字符串“/home/sky/data/*.xml”。因此,变量f指向字符串中的单个字符。
  2. 在“--file = f”中,“f”只是字符串“--file = f”中的一个字符。
  3. 解决您的问题,您应该做类似

    的事情
    for filename in os.listdir(directory):
    

    其中'directory'是您的文件夹,filename是您需要的文件。请注意,您应该将filename检查为xml文件。