【发布时间】:2020-04-26 12:34:39
【问题描述】:
我是新手,正在学习 Python。我正在处理一个文件夹中的 XML 文件(5,754 个文件)。使用 os 模块我可以毫无问题地打印所有文件名。我可以毫无问题地解析一个文件并写入 CSV 文件。我在尝试解析文件夹中的所有文件时遇到问题。请帮忙,谢谢。代码 sn-ps 和下面的所有代码。
这工作正常并打印所有 5,754 个文件名
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\ABC0000xxxx\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 行,在 树 = ET.parse("临床") 解析中的文件“C:\Users\dan\AppData\Local\Programs\Python\Python37-32\lib\xml\etree\ElementTree.py”,第 1197 行 tree.parse(源,解析器) 解析中的文件“C:\Users\dan\AppData\Local\Programs\Python\Python37-32\lib\xml\etree\ElementTree.py”,第 587 行 源 = 开放(源,“RB”) FileNotFoundError:[Errno 2] 没有这样的文件或目录:“临床” 进程以退出代码 1 结束
【问题讨论】:
-
您从该错误消息中了解/不了解什么?我觉得很清楚。