Python:遍历目录和子目录

时间:2019-02-05 22:46:31

标签: python

我想使用python删除3.000个文件的全部内容,只保留一些特定的行。

File.txt

    Motion
    FileName "d:/monster"
    Dur 0.6321
    Acc 0.1121
    SOME LINE
    ASD
    SDAF
    DS
    V
    SADF
    SDV
    SDAFAV

此代码非常适合单个文件

with open(x, "r+") as f:
    new_f = f.readlines()
    f.seek(0)

    for line in new_f:
        if re.match(r"^(Dur|Acc)", line):
            f.write(line)

    f.truncate()

我尝试过这种方法,以扩展名为.txt的所有文件进行迭代

files = glob.glob('dirtest')
for x in files:

    with open(x, "r+") as f:
        new_f = f.readlines()
        f.seek(0)

        for line in new_f:
            if re.match(r"^(Dur|Acc)", line):
                f.write(line)

        f.truncate()

但是什么也没发生。 最终脚本应如何显示?遍历所有3.000个文件

1 个答案:

答案 0 :(得分:0)

您可以尝试使用listdir

import os
for file in os.listdir("filesPath"):
     if file.endswith(".txt"):
         with open(x, "r+") as f:
             new_f = f.readlines()
             f.seek(0)
             for line in new_f:
                 if re.match(r"^(Dur|Acc)", line):
                 f.write(line)

             f.truncate()

希望有帮助