Python - 读取、解析和写回文件

标签 python parsing

我正在尝试从一个文本文件中读取大约 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/

相关文章:

java - 用双引号封装时转义序列与预定义字符类(也称为特殊正则表达式字符)

python - 如何压缩两个不同大小的列表?

ios - 如何将 userdefault 值转换为 URL?

ios - 我应该为我拥有的每个 XML 提要使用一个 XML 解析器,还是应该为我拥有的每个 XML 提要编写一个解析器?

c# - 了解开闭原则

python - for 循环对其表达式列表求值多少次?

python array(10,1) 和 array(10,) 之间的区别

python - 从 URL 获取参数 slugs

java - 如何使用 DOM 解析此 XML 并将其内容放入哈希表中?

java - 如何像Android中的response一样设置数组对象的顺序?