python 将多行数据转化为多列数据

纯新一只,请教各位如何将TXT文本里多行字符串,转化为多列显示,
比如:把
123
123
123
转化为:
111
222
333

以下内容部分参考ChatGPT模型:


可以通过读取文本文件的每一行,将其存储到列表中,然后使用zip函数将多个列表中的元素按列合并。

以下是示例代码:

with open('data.txt', 'r') as f:
    lines = [line.strip() for line in f.readlines()]

cols = 3  # 列数
rows = len(lines) // cols  # 行数

# 将多行数据转化为多列数据
data = [list(x) for x in zip(*[lines[i:i+rows] for i in range(0, len(lines), rows)])]

# 输出结果
for row in data:
    print('\t'.join(row))

其中,data.txt 是包含多行数据的文本文件,cols 是要生成的列数,通过计算得到行数 rows。然后使用列表解析式将多行数据分组成多个列表,再使用 zip 函数将多个列表中的元素按列合并,最终得到一个包含多个列表的列表 data。最后,遍历 data 中的每一行,将其转化为字符串并输出。


如果我的建议对您有帮助、请点击采纳、祝您生活愉快

参考一下

# 读取文件中的多行数据
with open('data.txt', 'r') as f:
    lines = f.readlines()

# 将多行数据转换为多列数据
data = zip(*[line.strip().split() for line in lines])

# 打印多列数据
for column in data:
    print(column)


  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7768581
  • 这篇博客你也可以参考下:python:将数据从txt文件中读取并保存到字典中
  • 除此之外, 这篇博客: 【Python】使用python3串口发送txt数据中的 一、What 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 先把一些过程中查询到的资料贴一下,主要是编码方面知识。

    1、utf-8与utf-8-sig两种编码格式的区别
    UTF-8以字节为编码单元,它的字节顺序在所有系统中都是一様的,没有字节序的问题,也因此它实际上并不需要BOM(“ByteOrder Mark”)。但是UTF-8 with BOM即utf-8-sig需要提供BOM。
    2、\ufeff
    字节顺序标记(英语:byte-order mark,BOM)是位于码点U+FEFF的统一码字符的名称。当以UTF-16或UTF-32来将UCS/统一码字符所组成的字符串编码时,这个字符被用来标示其字节序。它常被用来当做标示文件是以UTF-8、UTF-16或UTF-32编码的记号。
    3、ASCII、GB2312、GBK、GB18030编码关系
    GB18030兼容GBK,GBK兼容GB2312,GB2312兼容ASCII。所谓兼容,你可以简单理解为子集、不冲突的关系。例如GB2312编码的文件中可以出现ASCII字符,GBK编码的文件中可以出现GB2312和ASCII字符,GB18030编码的文件可以出现GBK、GB2312、ASCII字符。
    https://cloud.tencent.com/developer/article/1343240

  • 您还可以看一下 赵帅老师的Python爬虫基础&商业案例实战课程中的 批量生成舆情报告准备知识点:自动生成txt文件小节, 巩固相关知识点