有没有办法将标准文本文件转换为csv文件



我有一批文本正在尝试将其转换为表。文件的开头几行如下所示,最后一个括号显示了我需要获得的数据。我试图将括号中的信息分解成一列="作为标题,引号中的信息作为数据。我遇到的问题是,它是一个文本文件,我不确定如何编辑文本文件以删除前6行,然后将剩余数据转换为csv类型的数据。

<?xml version="1.0"?>
<XML version="3.0">
<AccountProvider name="Investments Int" code="IB">
<Imports/>
<InterpretFXRates/>
<PSXList date="20201207" batch="3">
<PSX portfolio="11111111" trancode="c1" type1="c2" iso1="c3" symbol1="c4" trade="20201207">

您可以在读取文件后删除前六行,将内容转换为数据帧并写入csv:

import pandas as pd
with open('file.txt') as f:
content = f.readlines()[6:]
content = [x.strip()[1:-1].replace('" ', '",').replace('"', '') for x in content]  # drop <>, make comma-separated, and remove " marks
res = [dict(item.split("=") for item in strn.split(',')) for strn in content]
df = pd.DataFrame(res)
df.to_csv('file.csv', index=False)

这也适用于有多个入口行的情况。

最新更新