[英]Print a specific column from a tab-delimited file in python
我是python的初学者。 我有一个制表符分隔的文件,我只想打印最后一列的第 37 列。 但是当我运行这段代码时,整个数据都会被打印出来。 我的代码如下:
dicts = {}
for i in open('Book2.txt'):
split_i = i.split('\t')
dicts[split_i[37]] = i.rstrip()
print(i.rstrip())
在第 4 行中,rstrip() 是一个字符串函数,用于删除尾随空格,而不是抓取最后一个单词。 由于 split() 从前一行中的字符串创建了一个列表,您可以使用列表索引,例如 split_i[-1] 来索引列表最右边的项目,或 split_i[36] 来获取从左数第 37 项。 此外,这可能不是 dict 的正确用法。 尝试创建一个列表,例如:
col_37 = [] # Empty list instead of a dict
for line in open('Book2.txt'): # Variable 'i' named more intuitively
split_line = line.split('\t') # Separate the string by tabs
col_37.append(split_line[36]) # Add the item you want to your list
print(col_37) # Show the data you just got
python 中的列表是零索引的。 这意味着第一个元素的索引为 0。因此对于第 37 列,它将是mylist[36]
。 因为你想要最后一列,所以有一个快捷方式mylist[-1]
总是返回列表的最后一个元素。
for line in open('Book2.txt'):
print(line.split('\t')[-1])
列表推导式处理简单的for loop
是一种更简洁、更 Pythonic 的方法:
lines = open('Boot2.txt')
col = [line.split('\t')[-1].rstrip() for line in lines]
print("\n".join(col))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.