为什么我的文件读取功能只读取奇数行

  • 本文关键字:读取 功能 文件 python
  • 更新时间 :
  • 英文 :


我有一个文本文件,包含从0到99的所有整数,包括:

0
1
2
3
[...]
98
99

我已经写了以下代码来尝试打印出每一行:

f = open('number_list.txt', 'r')
for x in f:
r = f.readline()
r2 = r.rstrip('n')
print(r2)

但出于某种原因,它只会每秒打印一次数字:

1
3
5
[...]
97
99

为什么会发生这种情况?

for x in f:已经遍历了文件的每一行。因此:

for x in f:
r = f.readline()

你一次读两行(因此是奇数(。只需取消对readline((的调用,并使用x作为行。

您以两种不同的方式读取文件中的行。

for x in f每次迭代从文件中读取一行。

readline()还从文件中读取一行。

您没有打印for循环中的行;您只打印readline()中的行。

所以你读了每一行,但你只打印了每隔一行。

这是因为您根本没有使用包含当前行的x变量。您不使用它,而是通过执行r = f.readline():来消耗下一行

f = open("number_list.txt", "r")
for x in f:
print(x) <--- use x instead

最新更新