我的问题与Python中的文件输入有关,使用open()。我有一个文本文件mytext.txt有3行。
我试着用这个文件做两件事:打印行数和打印行数。
我尝试了以下代码:input_file = open('mytext.txt', 'r')
count_lines = 0
for line in input_file:
print line
for line in input_file:
count_lines += 1
print 'number of lines:', count_lines
结果:正确打印3行,但打印“行数:0”(而不是3)
我找到了两种方法来解决这个问题,并让它打印出来:
1)我使用一个循环而不是两个input_file = open('mytext.txt', 'r')
count_lines = 0
for line in input_file:
print line
count_lines += 1
print 'number of lines:', count_lines
2)在第一个循环之后,我再次定义输入文件input_file = open('mytext.txt', 'r')
count_lines = 0
for line in input_file:
print line
input_file = open('mytext.txt', 'r')
for line in input_file:
count_lines += 1
print 'number of lines:', count_lines
对我来说,定义input_file = ...似乎只对一个循环有效,就好像在我将其用于循环后被删除一样。但我不明白为什么,也许我还不完全清楚Python中variable = open(filename)是如何处理的。
顺便说一下,我发现在这种情况下,最好只使用一个循环。然而,我觉得我必须把这个问题弄清楚,因为有些情况下我可以/必须利用它。