Python中的Unix cat函数(cat *> merged.txt)?

时间:2013-11-27 21:19:17

标签: python unix merge concatenation cat

有没有办法在Python中使用来自Unix的cat函数或类似的东西一旦建立目录?我想将files_1-3合并到merged.txt

我通常会在Unix中找到该目录,然后运行

cat * > merged.txt 

file_1.txt
file_2.txt
file_3.txt

merged.txt

3 个答案:

答案 0 :(得分:3)

使用fileinput模块:

import fileinput
import glob
with open('/path/to/merged.txt', 'w') as f:
    for line in fileinput.input(glob.glob('/path/to/files/*')):
        f.write(line)
    fileinput.close()

答案 1 :(得分:1)

正如我们所知,我们将使用“Unix”cat命令(除非你正在寻找一种pythonic方式或表现出来的性能)

您可以使用

import os
os.system("cd mydir;cat * > merged.txt")

如1_CR所指(谢谢)并在此解释 Python: How to Redirect Output with Subprocess?

答案 2 :(得分:0)

使用fileinput。假设您有一个包含以下代码的python文件merge.py,您可以像merge.py dir/*.txt那样调用它。文件merged.txt被写入当前目录。默认情况下,fileinput遍历在命令行上传递的文件列表,因此您可以让shell处理globbing

#!/usr/bin/env python
import fileinput
with open('merged.txt', 'w') as f:
    for line in fileinput.input():
        f.write(line)