首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Python中连接文本文件?

如何在Python中连接文本文件?
EN

Stack Overflow用户
提问于 2012-11-29 03:54:46
回答 10查看 298K关注 0票数 197

我有一个包含20个文件名的列表,比如['file1.txt', 'file2.txt', ...]。我想写一个Python脚本,将这些文件连接成一个新文件。我可以通过f = open(...)打开每个文件,通过调用f.readline()逐行读取,并将每一行写入新文件。这对我来说似乎不是很“优雅”,特别是我必须逐行读/写的部分。

在Python中有没有更“优雅”的方式来实现这一点?

EN

回答 10

Stack Overflow用户

发布于 2014-11-22 20:35:15

使用shutil.copyfileobj

它会自动逐块读取输入文件,这会更高效地读取输入文件,即使某些输入文件太大而无法放入内存,它也会正常工作:

代码语言:javascript
复制
import shutil

with open('output_file.txt','wb') as wfd:
    for f in ['seg1.txt','seg2.txt','seg3.txt']:
        with open(f,'rb') as fd:
            shutil.copyfileobj(fd, wfd)
票数 231
EN

Stack Overflow用户

发布于 2014-06-03 09:39:24

我不知道是否优雅,但这是可行的:

代码语言:javascript
复制
    import glob
    import os
    for f in glob.glob("file*.txt"):
         os.system("cat "+f+" >> OutFile.txt")
票数 8
EN

Stack Overflow用户

发布于 2012-11-29 04:00:34

UNIX命令有什么问题?(假设您不是在Windows上工作):

ls | xargs cat | tee output.txt可以完成这项工作(如果需要,可以通过子进程从python中调用它)

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13613336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档