繁体   English   中英

从python中的制表符分隔文件打印特定列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM