打开多个 xml 个文件,并解析它们
Open multiple xml files, and parse them
我需要你的帮助。
我试图从一个文件夹中读取许多 xlm 文件,我需要提取每个 xml 的一些信息。这些xml具有相同的结构。
此时我可以读取每个XML文件,但只捕获最后一个打开的信息。如何捕获每个 xml 文件的信息并保存到 pandas 的数据帧结构中?
这是我的代码:
from os import listdir, path
import xml.etree.ElementTree as ET
mypath = '/Users/nicolasdiaz/Desktop/dtes copy'
files = [path.join(mypath, f) for f in listdir(mypath) if f.endswith('.xml')]
for file in files:
print(file)
tree = ET.parse(file)
root = tree.getroot()
for docID in root.iter('Folio'):
Invoice = 'Factura:' + docID.text
print(Invoice)
for client_rut in root.iter('RUTRecep'):
Rut = 'Rut:' + client_rut.text
print(Rut)
这是我的结果:,但是我需要三个xml文件的信息
/Users/nicolasdiaz/venv/bin/python
"/Users/nicolasdiaz/PycharmProjects/Marfil/lib/python3.10/Open files.py"
/Users/nicolasdiaz/Desktop/dtes copy/77116757-T33-F1877.xml
/Users/nicolasdiaz/Desktop/dtes copy/77116757-T33-F1960.xml
/Users/nicolasdiaz/Desktop/dtes copy/77116757-T33-F1961.xml
Factura:1961
Rut:93770000-8
Process finished with exit code 0
将下面的两个for循环移到上面的for循环中,像这样:
from os import listdir, 路径
将 xml.etree.ElementTree 导入为 ET
mypath = '/Users/nicolasdiaz/Desktop/dtes 复制'
files = [path.join(mypath, f) for f in listdir(mypath) if f.endswith('.xml')]
对于文件中的文件:
打印(文件)
树 = ET.parse(文件)
根 = tree.getroot()
for docID in root.iter('Folio'):
Invoice = 'Factura:' + docID.text
print(Invoice)
for client_rut in root.iter('RUTRecep'):
Rut = 'Rut:' + client_rut.text
print(Rut)
在 for 语句之前和循环中创建一个数据帧,使用以下方法附加到它:
df.append([文件、发票、车辙])
我需要你的帮助。 我试图从一个文件夹中读取许多 xlm 文件,我需要提取每个 xml 的一些信息。这些xml具有相同的结构。
此时我可以读取每个XML文件,但只捕获最后一个打开的信息。如何捕获每个 xml 文件的信息并保存到 pandas 的数据帧结构中?
这是我的代码:
from os import listdir, path
import xml.etree.ElementTree as ET
mypath = '/Users/nicolasdiaz/Desktop/dtes copy'
files = [path.join(mypath, f) for f in listdir(mypath) if f.endswith('.xml')]
for file in files:
print(file)
tree = ET.parse(file)
root = tree.getroot()
for docID in root.iter('Folio'):
Invoice = 'Factura:' + docID.text
print(Invoice)
for client_rut in root.iter('RUTRecep'):
Rut = 'Rut:' + client_rut.text
print(Rut)
这是我的结果:,但是我需要三个xml文件的信息
/Users/nicolasdiaz/venv/bin/python
"/Users/nicolasdiaz/PycharmProjects/Marfil/lib/python3.10/Open files.py"
/Users/nicolasdiaz/Desktop/dtes copy/77116757-T33-F1877.xml
/Users/nicolasdiaz/Desktop/dtes copy/77116757-T33-F1960.xml
/Users/nicolasdiaz/Desktop/dtes copy/77116757-T33-F1961.xml
Factura:1961
Rut:93770000-8
Process finished with exit code 0
将下面的两个for循环移到上面的for循环中,像这样:
from os import listdir, 路径 将 xml.etree.ElementTree 导入为 ET
mypath = '/Users/nicolasdiaz/Desktop/dtes 复制' files = [path.join(mypath, f) for f in listdir(mypath) if f.endswith('.xml')]
对于文件中的文件: 打印(文件) 树 = ET.parse(文件) 根 = tree.getroot()
for docID in root.iter('Folio'):
Invoice = 'Factura:' + docID.text
print(Invoice)
for client_rut in root.iter('RUTRecep'):
Rut = 'Rut:' + client_rut.text
print(Rut)
在 for 语句之前和循环中创建一个数据帧,使用以下方法附加到它:
df.append([文件、发票、车辙])