python - 将 .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
那么,关于如何实现这一目标的任何想法?
解决方案
在一个循环中,读取三行,删除它们尾随的换行符,并用逗号分隔打印它们。
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
推荐阅读
- javascript - 单击 WebGL(画布)中的选定坐标
- r - Rmarkdown:在标签集下添加标题
- variables - VueJS - 在字符串中插入字符串
- javascript - 香草 JavaScript 替换元素
- r - 遍历忽略但保留 R 中的 NA 值的列
- laravel - 在 laravel vue 项目中使用 laravel mix 如何在所有组件中包含 scss 文件?
- dom - 如何将我的功能调制为单独的并行测试?
- python - Django 模板语法错误
- php - Craft CMS 允许在直接访问 /checkout 链接时实现零销售
- oracle - Oracle 中的连接池大小概念