首页 > 解决方案 > 将 .TXT 数据作为一列拆分为“n”行,如 Python 中的 CSV?

问题描述

我有一个 .TXT 文件,其中包含如下数据序列:

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

我已经尝试过这段代码,但我没有输出:

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/PycharmProjects/Convert2CSV/main.py
<generator object chunker_list.<locals>.<genexpr> at 0x0000021A73B3BB30>

Process finished with exit code 0

那么,关于如何实现这一目标的任何想法?

标签: pythonpython-3.xlist

解决方案


在一个循环中,读取三行,删除它们尾随的换行符,并用逗号分隔打印它们。

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

推荐阅读