繁体   English   中英

需要帮助改善文本处理程序(Python 3)

[英]Need help improving text processing program (Python 3)

我已经编写了一个python程序来遍历X个文件列表,打开每个文件,逐行读取,然后写入(附加)到输出文件中。 由于这些文件每个都是几GB,所以要花很长时间。

我正在寻找改善此程序性能的建议。我没有接受过正式的CS培训,因此很可能缺少针对此问题的“显而易见的解决方案”。 我已经做过一些研究,但是同样,我有限的知识(和其他更高优先级的任务)限制了我实现此类功能的能力。这也是我第一次关于堆栈溢出的文章。

for name in PR_files:
    with open(PR_path + name, 'r') as f:
        line = f.readline()
        while line:
            with open(PR_out_path, 'a') as g:
                g.write(line + '\n')
                line = f.readline()
    f.close()

上面的程序可以运行,但是输出文本文件中的每一行之间都有一个空白行; 这是因为下一个文件的第一行从上一个文件的最后一行开始(我对这个问题的解决方案是将'\\ n'添加到要写入输出文件的每一行中。.因此,我编写了另一个块删除输出文件中的所有空白行(是的,效率很低,可能是一种更好的方法)

# this removes all blank lines from out put file
with open(PR_out_path) as this, open(PR_out_path_fix, 'w') as that:
    for line in this:
        if not line.strip():
            continue
        that.write(line)

为什么要逐行附加? 像这样附加整个文件呢?

with open(PR_out_path, 'a') as g:
    for name in PR_files:
        with open(PR_path + name, 'r') as f:
            g.write(f.read())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM