gpt4 book ai didi

python - 在python中解析带有换行符的文本文件

转载 作者:太空宇宙 更新时间:2023-11-04 00:35:49 26 4
gpt4 key购买 nike

我有一个包含大约 20 个条目的文本文件。它们看起来像这样:

~

England
Link: http://imgur.com/foobar.jpg
Capital: London
~
Iceland
Link: http://imgur.com/foobar2.jpg
Capital: Reykjavik
...

等等

我想获取这些条目并将它们转换为 CSV。每个条目之间有一个“~”分隔。我绞尽脑汁想弄清楚如何逐行查看并为每个国家/地区创建 CSV 值。谁能告诉我如何解决这个问题?

最佳答案

使用库 luke :)我假设您的数据格式正确。大多数真实世界的数据不是这样的。因此,这里有一个解决方案。

>>> content.split('~')
['\nEngland\nLink: http://imgur.com/foobar.jpg\nCapital: London\n', '\nIceland\nLink: http://imgur.com/foobar2.jpg\nCapital: Reykjavik\n', '\nEngland\nLink: http://imgur.com/foobar.jpg\nCapital: London\n', '\nIceland\nLink: http://imgur.com/foobar2.jpg\nCapital: Reykjavik\n']

对于编写 CSV,Python 具有标准库函数。

>>> import csv
>>> csvfile = open('foo.csv', 'wb')
>>> fieldnames = ['Country', 'Link', 'Capital']
>>> writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
>>> for entry in entries:
... cols = entry.strip().splitlines()
... writer.writerow({'Country': cols[0], 'Link':cols[1].split(': ')[1], 'Capital':cols[2].split(':')[1]})
...

如果您的数据更多是半结构化或格式不正确,请考虑使用类似 PyParsing 的库.

编辑:第二列包含 URL,因此我们需要妥善处理拆分。

>>> cols[1]
'Link: http://imgur.com/foobar2.jpg'
>>> cols[1].split(':')[1]
' http'
>>> cols[1].split(': ')[1]
'http://imgur.com/foobar2.jpg'

关于python - 在python中解析带有换行符的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44081302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com