我想从文件夹中捕获txt文件,并且cat结果应该显示在终端中(显然)。我尝试过使用listdir()但它不起作用。需要一些帮助!
答案 0 :(得分: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)
答案 1 :(得分:0)
只需在终端“cat *”
中使用该命令即可或者如果您想在python中执行此操作:
import os
allTextFileContents = os.popen("cat *").read();
print(allTextFileContents);
您还可以对内容进行其他操作,因为它存储为变量!