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

How to call .py on all xml files?

我正在 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 文件。我的代码有什么问题?

谢谢

尝试:

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. 在您的 for 循环中,您正在迭代字符串“/home/sky/data/*.xml”。因此,变量 f 指向字符串中的单个字符。
  2. 在“--file=f”中,"f"只是字符串“--file=f”中的一个字符。

解决你的问题,你应该做类似

for filename in os.listdir(directory):

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