如何从如下格式中取出元素存入表格之中?(语言-python)

img


这是一个txt文本文档,如何将图中格式的数据的第n个元素作为第n列保存为表格数据或者提取出来

lst = []
with open('你的文件.txt', 'r') as f:
    s = f.readline()
    lst = eval("[" + s + "]")
print(lst[1][1]) #输出 bbb

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7512360
  • 这篇博客也不错, 你可以看下python从txt文档中随机抽取n条记录
  • 除此之外, 这篇博客: python不使用第三方库,从txt文本文档中读取表格型字符串数据并进行数据处理操作中的 数据规范 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    .txt表格型数据如下,其中分割符为’\t’,最后通过换行符’\n’换行
    在这里插入图片描述

  • 您还可以看一下 青于蓝老师的Python企业招聘百万级信息爬取课程中的 数据保存到数据库 txt es服务器中小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    我可以通过以下步骤解决该问题:

    1. 打开文本文件,读取数据并按照'\t'进行分割,得到二维列表。
    with open('file_path.txt') as f:
        f.readline()
        lines = f.readlines()
        for i in range(len(lines)):
            if lines[i].endswith('\n'):
                lines[i] = lines[i][:-1]
            lines[i] = lines[i].split('\t')
    
    1. 创建一个二维列表来存储提取后的数据,将第一个元素直接存储到对应列,将第二个和第三个元素进行加权计算后存储到对应列。
    table = []
    for i in range(len(lines)):
        name = lines[i][0]
        score = int(lines[i][1]) * 0.5 + int(lines[i][2]) * 0.5
        table.append([name, score])
    
    1. 以xlwt库为例,创建一个工作簿,添加一个工作表,并设置标题行格式。
    import xlwt
    
    wb = xlwt.Workbook()
    st = wb.add_sheet("data")
    
    style = xlwt.XFStyle()                 
    al = xlwt.Alignment()                  
    al.horz = 0x02                          
    al.vert = 0x01                          
    style.alignment = al
    style2 = xlwt.easyxf("font:bold on")  
    style2.alignment = al
    
    title = ["Name", "Score"]
    for p in range(len(title)):
        st.write(0, p, title[p], style2)
    
    1. 写入提取到的数据到工作表中。
    for i in range(len(table)):
        for j in range(len(table[i])):
            st.write(i+1, j, table[i][j], style)
    
    1. 保存工作簿到指定路径。
    wb.save("output_path.xls")
    

    完整代码为:

    import xlwt
    
    with open('file_path.txt') as f:
        f.readline()
        lines = f.readlines()
        for i in range(len(lines)):
            if lines[i].endswith('\n'):
                lines[i] = lines[i][:-1]
            lines[i] = lines[i].split('\t')
    
    table = []
    for i in range(len(lines)):
        name = lines[i][0]
        score = int(lines[i][1]) * 0.5 + int(lines[i][2]) * 0.5
        table.append([name, score])
    
    wb = xlwt.Workbook()
    st = wb.add_sheet("data")
    
    style = xlwt.XFStyle()                 
    al = xlwt.Alignment()                  
    al.horz = 0x02                          
    al.vert = 0x01                          
    style.alignment = al
    style2 = xlwt.easyxf("font:bold on")  
    style2.alignment = al
    
    title = ["Name", "Score"]
    for p in range(len(title)):
        st.write(0, p, title[p], style2)
    
    for i in range(len(table)):
        for j in range(len(table[i])):
            st.write(i+1, j, table[i][j], style)
    
    wb.save("output_path.xls")
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

以下回答来自chatgpt
在Python中可以使用csv模块将数据从txt文件中提取出来并保存为表格数据。具体步骤如下:

  1. 打开txt文件并读取其中的数据:
with open('file.txt', 'r') as f:
        lines = f.readlines()

2, 对读取到的数据进行处理,分离出每个元素,并组织为list of list的形式,例如:

new_lines = []
for line in lines:
    new_line = []
    elements = line.strip('[]').split(',')
    for element in elements:
        new_line.append(element.strip('\''))
    new_lines.append(new_line)

3, 将数据保存为csv文件,例如:

import csv

with open('output.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile)
    for line in new_lines:
        writer.writerow(line)

这样就可以将数据保存为表格形式的csv文件。如果需要使用Excel等表格软件打开,则需要将csv文件后缀名改为.csv。