Python 保存列表中以制表符分隔的TXT文件中的列

Python 保存列表中以制表符分隔的TXT文件中的列,python,csv,Python,Csv,我有一个文本文件,其中有大约35行垃圾信息。之后是我需要提取的制表符分隔的数据。我需要在列表中保存特定列 首先,我试着这样做: with open('BIOGRID-ORGANISM-Homo_sapiens-3.4.163.tab - Small.txt') as txtfile: readCSV = csv.reader(txtfile, delimiter='\t') objectids = [] municodes = [] results = []

我有一个文本文件,其中有大约35行垃圾信息。之后是我需要提取的制表符分隔的数据。我需要在列表中保存特定列

首先,我试着这样做:

with open('BIOGRID-ORGANISM-Homo_sapiens-3.4.163.tab - Small.txt') as txtfile:

    readCSV = csv.reader(txtfile, delimiter='\t')
    objectids = []
    municodes = []
    results = []

    for row in readCSV[35]:
        objectid = row[3]
        municode = row[5]
        objectids.append(objectid)
        municodes.append(municode)
txtfile.close()
这就得到了错误

TypeError: '_csv.reader' object is not subscriptable.    
然后,我尝试了这样的方法:

lol = list(csv.reader(open('BIOGRID-ORGANISM-Homo_sapiens-3.4.163.tab - Small.txt'), delimiter='\t'))

d = dict()
key = lol[0][0]      # cell A7
value = lol[0][0]
print(key)
print(value)

但是这样,如果我更改[0][0],我将超出范围。

您尝试过使用skiprows选项的熊猫吗

import pandas as pd
result = pd.read_csv('file.csv', skiprows=35)
relevant_column = list(result['relevant_column'])

您将迭代器与迭代结果混淆了。如果您首先迭代读卡器,将所有输入放入一个列表,然后对列表进行切片,那么您要做的是更好地表达:

data_rows = [_ for _ in readCSV][36:]
objectids = [_[3] for _ in data_rows]
municodes = [_[5] for _ in data_rows]

这可能不是获得实际用例的最佳方式。由于您从文件中的电子表格中获取了两列(可能更多),我建议您使用Pedro已经建议的PANDAS,并将内容直接填充到数据框中。df操作功能将使您免于大量的列表理解、筛选等操作。

我尝试将['relevant_column']替换为['name of my column']和[0],但这两种方法都会给我错误键error:'tALIASES_FOR_a'将[0]放在列表之外。举个例子会更容易…请注意,由于您未能提供完整的解决方案,我们无法为您提供有效的解决方案,也无法帮助您处理后续的错误消息。