我的问题与 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)
我找到了两种方法来解决它,并让它打印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
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 = ...
仅对一个循环有效,就好像在我将它用于循环后它被删除了一样。但我不明白为什么,我可能还不是 100% 清楚,variable = open(filename)
在 Python 中是如何处理的。
顺便说一句,我发现在这种情况下最好只使用一个循环。但是,我觉得我必须弄清楚这个问题,因为在某些情况下我可以/必须使用它。