将.TXT数据作为一列拆分为';n';像Python中的CSV那样的行中的ITen?
我有一个.TXT文件,其中包含如下数据序列:将.TXT数据作为一列拆分为';n';像Python中的CSV那样的行中的ITen?,python,python-3.x,list,Python,Python 3.x,List,我有一个.TXT文件,其中包含如下数据序列: Name: John Wick Age: 34 Country: USA Name: Jeffrey Jones Age: 55 Country: Africa Name: John Wick,Age: 34,Country: USA Name: Jeffrey Jones,Age: 55,Country: Africa 等等,大文件。我想要的是将每组数据(姓名、年龄和国家)放在单独的行中,如CSV文件,如下所示: Name: John Wick
Name: John Wick
Age: 34
Country: USA
Name: Jeffrey Jones
Age: 55
Country: Africa
Name: John Wick,Age: 34,Country: USA
Name: Jeffrey Jones,Age: 55,Country: Africa
等等,大文件。我想要的是将每组数据(姓名、年龄和国家)放在单独的行中,如CSV文件,如下所示:
Name: John Wick
Age: 34
Country: USA
Name: Jeffrey Jones
Age: 55
Country: Africa
Name: John Wick,Age: 34,Country: USA
Name: Jeffrey Jones,Age: 55,Country: Africa
我已经尝试过此代码,但没有输出:
def chunker_list(seq, size):
return (seq[i::size] for i in range(size))
with open('Data.txt', encoding='utf8') as f:
print(chunker_list(f, 3))
这是输出:
C:\Users\marco\PycharmProjects\Convert2CSV\venv\Scripts\python.exe
C:/Users/marco/pycharm项目/Convert2CSV/main.py
进程已完成,退出代码为0
那么,我该如何实现这一点呢?在一个循环中,读取三行,删除尾随的换行符,并用逗号分隔打印它们
with open('Data.txt') as f:
while True:
try:
records = [next(f).rstrip('\n') for _ in range(3)]
except StopIteration:
break
print(*records, sep=',')
输出:
Name: John Wick,Age: 34,Country: USA
Name: Jeffrey Jones,Age: 55,Country: Africa
你说没有输出是什么意思?我编辑代码来添加输出。你没有任何打印。如果没有打印,您希望得到什么输出?添加了打印命令,但仍然没有得到输出您确实得到了输出-生成器的表示形式。对于列表理解,将
(范围内i的seq[i::size]替换为范围内i的[seq[i::size])
。(尽管我仍然认为这不是你想要的结果。你应该更准确地了解你的期望)