如何在所有 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
要事第一:
- 在您的 for 循环中,您正在迭代字符串“/home/sky/data/*.xml”。因此,变量 f 指向字符串中的单个字符。
- 在“--file=f”中,"f"只是字符串“--file=f”中的一个字符。
解决你的问题,你应该做类似
for filename in os.listdir(directory):
其中 'directory' 是您的文件夹,文件名是您需要的文件。请注意,您应该检查文件名是否为 xml 文件。
我正在 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
要事第一:
- 在您的 for 循环中,您正在迭代字符串“/home/sky/data/*.xml”。因此,变量 f 指向字符串中的单个字符。
- 在“--file=f”中,"f"只是字符串“--file=f”中的一个字符。
解决你的问题,你应该做类似
for filename in os.listdir(directory):
其中 'directory' 是您的文件夹,文件名是您需要的文件。请注意,您应该检查文件名是否为 xml 文件。