我是新来的,正在学习Python。我正在处理文件夹中的XML文件(5754个文件)。使用操作系统模块,我可以毫无问题地打印所有文件名。我可以解析一个文件并将其写入CSV文件而不会出现问题。我在解析文件夹中的所有文件时遇到问题。请帮忙,谢谢你。代码片段和下面的所有代码
这可以很好地打印所有5754个文件名
import os
for path, dirs, files in os.walk(r"C:\Users\dan\Desktop\parse"):
for f in files:
clinical = os.path.join(path, f)
print(clinical)
输出: C:\Users\dan\Desktop\toparse\abc000xxxx\ABC 00009932.xml C:\Users\dan\Desktop\toparse\ABC 0000xxxx\ABC 00009945.xml C:\Users\dan\Desktop\toparse\ABC 0000xxxx\ABC 00009958.xml
工作代码解析:写入CSV
import csv
import xml.etree.ElementTree as ET
import os
tree = ET.parse("ABC00000102.xml")
root = tree.getroot()
with open('names.csv', 'w', newline='') as csv_file:
writer = csv.writer(csv_file)
for child in root.iter():
key = child.tag
value = child.text
writer.writerow([key, value])
我的文件夹代码打印所有文件,但下面有错误 代码
import csv
import xml.etree.ElementTree as ET
import os
with open('names.csv', 'w', newline='') as csv_file:
writer = csv.writer(csv_file)
for path, dirs, files in os.walk(r"C:\Users\dan\Desktop\parse"):
for f in files:
clinical = os.path.join(path, f)
print(clinical)
tree = ET.parse("clinical")
root = tree.getroot()
for child in root.iter():
key = child.tag
value = child.text
writer.writerow([key, value])
错误 回溯(最近一次呼叫最后一次): 文件“C:/Users/dan/PycharmProjects/clinicals/example.py”,第14行,在 tree=ET.parse(“临床”) 文件“C:\Users\dan\AppData\Local\Programs\Python37-32\lib\xml\etree\ElementTree.py”,第1197行,在parse中 parse(源,解析器) 文件“C:\Users\dan\AppData\Local\Programs\Python37-32\lib\xml\etree\ElementTree.py”,第587行,在parse中 源代码=开放(源代码,“rb”) FileNotFoundError:[Errno 2]没有这样的文件或目录:“clinical” 进程已完成,退出代码为1
您正在调用
ET.parse("clinical")
,它在您当前工作的目录中查找名为“clinical”的文件如果希望它打开由
clinical
变量指定的路径,则需要执行ET.parse(clinical)
此外,如果您打算解析找到的每个文件,则需要修复缩进,以确保缩进发生在for循环中。目前,您的代码将只解析它在目录中找到的最后一个文件,因为解析发生在循环之后
相关问题 更多 >
编程相关推荐