如何使用Python获取文本中指定的多列数据

遇到这样问题,比如文本中显示
1 2 a
2 3 a
3 4 a
4 5 a
如何操作可以显示
1 a
2 a
3 a
4 a

读入list,split之后按需取用
或者用pandas库进行读入

import os
with open('./pastebin.txt', 'r') as ori:
    list1 = []
    list1.extend(map(lambda x: x.replace(
        '\n', '').split(' '), ori.readlines()))  # 获取每行内容,去除行末换行,按空格分割,存入list1
    # print(list1)
    list2 = list(map(lambda x: [x[0], x[2]], list1))  # 将list1切片后将需要的部分放入list2
    print(list2)  # 打印处理结果

有帮助望采纳~

使用pandas较为简单,先用read_csv读取txt文档,用iloc选取指定的列的子数据框即可,代码如下:

import pandas as pd
df=pd.read_csv('t0228.txt',sep=' ',header=None)
res=df.iloc[:,[0,2]]
print(res)

运行结果:

0  2
0  1  a
1  2  a
2  3  a
3  4  a

如有帮助,请点击采纳。


def make(file,*column):
    with open(file,'rt') as tf:
        for i in tf:
            if i.strip():#如果不是空行
                k=i.replace('\n','')#去掉行位换行符
                rowlst = k.split(' ')#字符串转换成列表
                #列表推导,三元赋值,如果x在rowlst长度区间内则取值,否则用空格代替
                newlist=[rowlst[x] if x<len(rowlst) and x >=0  else ' ' for x in column]
                #转换为字符串打印
                print((' ').join(newlist))
                      
make('test.txt',0,2,5,6)
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632