使用python从目录中的所有.txt文件中获取行

And*_*rej 1 python find

我在目录中有一些txt文件,我需要从所有这些文件中获取最后15行.我怎么能用python做到这一点?

我选择了这段代码:

from os import listdir
from os.path import isfile, join

dir_path= './'
files = [ f for f in listdir(dir_path) if isfile(join(dir_path,f)) ]
out = []
for file in files:
    filedata = open(join(dir_path, file), "r").readlines()[-15:]
    out.append(filedata)
f = open(r'./fin.txt','w')
f.writelines(out)
f.close()
Run Code Online (Sandbox Code Playgroud)

但我收到错误"TypeError:writelines()参数必须是一个字符串序列".我认为这是因为俄罗斯的字母.

Jon*_*nts 7

import os
from collections import deque

for filename in os.listdir('/some/path'):
    # might want to put a check it's actually a file here...
    # (join it to a root path, or anything else....)
    # and sanity check it's text of a usable kind
    with open(filename) as fin:
        last_15 = deque(fin, 15)
Run Code Online (Sandbox Code Playgroud)

deque 将自动丢弃最旧的条目并将最大大小峰值设置为15,因此这是保留"最后"'n'项的有效方法.