需要帮助解析 csv 文件,该文件具有 xml 文件的以下详细信息
csv 文件格式如下:
name,ip,timeout
domain\user1,10.119.77.218,9000
domain\user2,2.80.189.26,9001
domain\user3,4.155.10.110,9002
domain\user4,9.214.119.86,9003
domain\user5,4.178.187.27,9004
domain\user6,3.76.178.117,9005
上述 csv 详细信息需要添加到具有以下格式的 XML 文件中:
<login>
<entry name="domain\user1" ip="10.119.77.218" timeout="9000"/>
<entry name="domain\user2" ip="2.80.189.26" timeout="9001"/>
<entry name="domain\user11" ip="4.155.10.110" timeout="12000"/>
...
</login>
需要一些脚本,因为有一些文件需要转换。我尝试了以下工具: https://www.convertcsv.com/csv-to-xml.htm
但是上述工具将单个行转换为不需要的单独条目。正在寻找您的反馈。谢谢你。
如果 CSV/XML 文件的结构很简单,您可以使用
csv
模块并直接构造字符串(对于更复杂的场景我推荐 lxml
/bs4
模块):
import csv
with open("your_data.csv", "r") as f:
reader = csv.reader(f)
header = next(reader)
data = list(reader)
out = ["<login>"]
for line in data:
s = " ".join(f'{k}="{v}"' for k, v in zip(header, line))
out.append(f"\t<entry {s} />")
out.append("</login>")
print(*out, sep="\n")
打印:
<login>
<entry name="domain\user1" ip="10.119.77.218" timeout="9000" />
<entry name="domain\user2" ip="2.80.189.26" timeout="9001" />
<entry name="domain\user3" ip="4.155.10.110" timeout="9002" />
<entry name="domain\user4" ip="9.214.119.86" timeout="9003" />
<entry name="domain\user5" ip="4.178.187.27" timeout="9004" />
<entry name="domain\user6" ip="3.76.178.117" timeout="9005" />
</login>