【发布时间】:2020-08-12 04:32:42
【问题描述】:
我正在尝试从 Python 中的输入文件中逐行读取,如下所示。
in1 = open("input.txt", "r")
for i in in1:
a1 = in1.readline()
print(a1)
in1.close()
输入文件包含如下数字:
13245
546464
46516
684186
由于某种原因,它只打印每隔一行,中间有换行符,但我不明白为什么。
546464
684186
我希望 a1 最初存储“13245\n”,然后在下一次迭代中存储“546464\n”,依此类推,直到“684186\n”。如果我使用 readlines() 而不是 readline() 它会跳过初始数字,同时将剩余的数字与“\n”一起存储在列表中。
['546464\n', '46516\n', '684186']
为什么会这样?它是否与正在读取的换行符“\n”字符有关?我知道还有其他逐行读取文件的方法,但我想了解为什么在使用类似结构的其他语言(C++、Java)中它不能按预期工作。这不是要找到执行此操作的代码,而是要了解为什么此代码的行为方式如此。
【问题讨论】:
-
这是因为您在循环文件对象时调用了
readline()。不要那样做。
标签: python file input io newline