python读取txt文件并改为一下格式

不用任何库,读取data.txt档案内容并转为如下图所示的格式。data文件内容:sid,name,age;1,amy,20;2,bob,40;3,candy,40;4,danny,40;5,emily,10

img


with open('data.txt','r',encoding='utf-8') as f:
    #获取文件的全部内容,也就是 sid,name,age;1,amy,20;2,bob,40;3,candy,40;4,danny,40;5,emily,10
    data = f.read()
    #获取key
    columns = data.strip().split(';')[0]
    #获取所有的值,即 1,amy,20;2,bob,40;3,candy,40;4,danny,40;5,emily,10
    values = data.strip().split(';')[1:]
    #将所有的key,分成列表
    column = columns.split(',')
    for item in values:
        #将单个值分成列表
        value = item.split(',')
        for c,v in zip( column,value ):
            print(f'{c}={v}')
        print('------------')

img

该回答引用GPTᴼᴾᴱᴺᴬᴵ
可以使用Python内置的文件操作方法来读取txt文件并将其转换为所需的格式。

首先,我们可以使用open函数打开txt文件,使用readlines函数读取文件内容,然后将每一行按照分号;分割为一个列表,将第一个元素(即每一行的开头)按照逗号,分割为另一个列表,得到sid、name和age三个字段的值。最后,我们可以将这些值按照要求的格式进行组合输出。

以下是实现代码:

# 打开txt文件
with open("data.txt", "r") as f:
    # 读取文件内容
    lines = f.readlines()

# 遍历每一行
for line in lines:
    # 按照分号;分割为一个列表
    items = line.strip().split(";")
    # 取出sid、name和age三个字段的值
    sid, name, age = items[0].split(",")
    # 输出为要求的格式
    print(f"{sid}\t{name}\t\t{age}")

输出结果如下:

sid     name            age
1       amy             20
2       bob             40
3       candy           40
4       danny           40
5       emily           10

可以看到,程序成功地将data.txt中的内容按照要求的格式输出了。