Python:如何迭代文本文件中的行中的特定列

时间:2012-06-03 12:30:09

标签: python loops

我想沿着文本文件中的列迭代脚本,但忽略前5列。

目前我的脚本逐行运行一个文本文件来评估第6列中的值。我希望它能够遍历评估第6列,然后是第7列,然后是第8列等的所有行。 当脚本读取文件时,我不想评估每一行的每一列,而是要遍历整个文件评估列n,然后重复第n + 1列

目前我很简单:

for line in Input:
    line = line.rstrip() 
    fields = line.split("\t")
    for col in row:

但是我想指定它忽略前5列,因为它们不是目标(但仍然需要作为文件中的信息)。

我想类似范围6:20中col的行可能会有效,但我是一个python初学者,并且不知道在python中表达这个的正确方法。如果问题太混乱,请告诉我如何澄清这个问题。

提前感谢您的帮助。

最佳,

Rubal

3 个答案:

答案 0 :(得分:5)

如果您有一个列表row,则row[a:b]是以元素编号a开头且最多但不包含元素编号b的元素范围。

例如:

row = ['alpha', 'beta', 'gamma', 'delta', 'epsilon']

print row[2:4]

这个的输出是

['gamma', 'delta']

所以在循环中你可以写:

for col in row[6:20]:
    foo()

或者,使用

循环到列表的末尾
for col in row[6:]:
    foo()

答案 1 :(得分:4)

for line in Input:
    line = line.rstrip() 
    fields = line.split("\t")
    for col in fields[5:]:
        # process

答案 2 :(得分:2)

不复制

for line in Input:
    line = line.rstrip() 
    fields = line.split("\t")
    for index in range(5, len(fields)):
        #do_smth with fields[index]