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

需要帮助改进文本处理程序(Python 3),python,io,text-processing,Python,Io,Text Processing,我已经编写了一个python程序来循环遍历X文件列表,打开每个文件,逐行读取,然后写入(追加)输出文件。由于这些文件每个都有几GB,所以需要花费很长时间 我正在寻找改善该计划绩效的建议。。我没有接受过正式的CS培训,所以很可能我错过了解决这个问题的“显而易见的解决方案”;我做了一些研究,但我有限的知识(和其他更高优先级的任务)限制了我执行这些任务的能力。。。这也是我关于堆栈溢出的第一篇文章。。先谢谢你 for name in PR_files: with open(PR_path + n

我已经编写了一个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”。。因此,我编写了另一个块来删除输出文件中的所有空行(是的,效率非常低,可能是更好的方法)


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

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())

也许可以考虑问这个问题。这可能更适合你的问题。谢谢你的建议,列昂。我会这样做的。
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())