Python:在行文件中查找字符串,空输出

Python:在行文件中查找字符串,空输出,python,line,Python,Line,我搜索SO以查找带有特定字符串的输入txt文件的#行。但是我没有得到任何输出,它是空的。我使用以下python代码: with open(input_f) as input_data: print input_f # test if reading correct file: yes for line in input_f: # originally 'in input_data': no output if line.split('\t', 1)[0] =

我搜索SO以查找带有特定字符串的输入txt文件的#行。但是我没有得到任何输出,它是空的。我使用以下python代码:

with open(input_f) as input_data:
    print input_f  # test if reading correct file: yes
    for line in input_f:  # originally  'in input_data': no output
        if line.split('\t', 1)[0] == 'ABC':  # string before tab
        #if line.startswith('ABC'):  ... also empty output
            print line  # nothing is printed

谢谢您的帮助。

您正在迭代for循环中的
input\u f
而不是
input\u data

input\u f
是文件的路径
input_data
是关联的文件对象,这是
for
循环应该使用的对象


当您使用
input_data
时,它可能不起作用,因为您的行中没有制表符,或者任何以
ABC
开头的行;由于看不到输入,因此无法确定。

如果您希望获得文件中以“ABC\t”开头的第一行,那么,更简单、更高效、更符合Python的方法是:

with open(input_f) as input_data:
    your_value = next(line for line in input_data if line.startswith('ABC\t'))

正如其他人所说,您需要对输入数据(文件描述符)进行迭代,而不是对输入数据(带有文件路径的字符串)进行迭代。

您需要对输入数据进行循环,而不是对输入文件进行循环。向我们展示输入文件。您正在对输入数据进行迭代,输入数据是文件的路径,而不是输入数据,这是您应该详细说明的文件对象,不清楚你在问什么。