我正在尝试从一个文本文件中读取大约 5000 行代码,然后解析并将解析后的值存储到另一个文本文件中。
但是,我只能对前 967 行执行此操作(如输出文件所示,其中仅包含前 967 行的解析值)。
这是我为完成这项工作编写的简单代码。
infile = open("Input.txt", "r")
outfile = open("Output.txt", "w")
for line in infile.readline():
temp = infile.readline()
value = temp.split("<_|_>")
outfile.write(value[1])
我将如何着手编写其他 4000 多个值?
最佳答案
因为您的 for
迭代不是在 infile
中的行上,而是在其第一行中的字符上。第一行可能有 967 个字符。
for line in infile.readline()
表示您正在将 infile
中的第一行作为字符串读取。字符串是可迭代的,就像迭代它们会迭代该字符串中的字符一样。因此,您每次都在为该行中的每个字符运行循环。
你想做的可能是这样的:
with open("Input.txt", "r") as infile, open("Output.txt", "w") as outfile:
for line in infile:
outfile.write(line.split("<_|_>")[0])
Python 中的文件对象也是可迭代的。迭代它们会迭代每一行。您可以改用for line infile.readlines()
(注意:readlines
,而不是readline
),但是这将在迭代之前将 infile
中的所有行读取到一个巨大的数组中。直接在文件对象上迭代只会一次将最新读取的行保留在内存中。
关于Python - 读取、解析和写回文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14089083/