有没有办法在Python中使用来自Unix的cat函数或类似的东西一旦建立目录?我想将files_1-3合并到merged.txt
我通常会在Unix中找到该目录,然后运行
cat * > merged.txt
file_1.txt
file_2.txt
file_3.txt
merged.txt
答案 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)