如何使用python将所有txt文件捕获到终端? [关闭]

问题描述 投票:-2回答:2

我想从文件夹中捕获txt文件,并且cat结果应该显示在终端中(显然)。我尝试过使用listdir()但它不起作用。需要一些帮助!

python python-2.7 cat
2个回答
0
投票

一个简单的实现使用glob生成带有.txt扩展名的文件的绝对路径,在一个循环中读取文件并将其打印在标准输出上:

import glob,sys
for filepath in sorted(glob.glob("path/to/directory/*.txt")):
    with open(filepath) as f:
        sys.stdout.write(f.read())

使用fileinput允许读取所有文件,并逐行读取,可能更少的内存密集和更短:

import glob,sys,fileinput

for f in fileinput.input(sorted(glob.glob("path/to/directory/*.txt"))):
    sys.stdout.write(f)

请注意,sorted最好确保以确定的顺序处理文件(某些文件系统不遵守该顺序)

sys.stdout.write(f)仍然逐行写,但正如评论所建议的那样,你可以通过使用shutil.copyfileobj(f,sys.stdout)来提高性能而不是使用如此多的内存


0
投票

只需使用终端“cat *”中的命令

或者如果你想在python中这样做:

import os
allTextFileContents = os.popen("cat *").read();
print(allTextFileContents);

您也可以对内容执行其他操作,因为它存储为变量!

© www.soinside.com 2019 - 2024. All rights reserved.