如何从文件夹中的文件中删除行?

erodr777

我有一个Python脚本,能够删除包含某些关键字的文件夹中文件中的行。它通过创建一个单独的文件并将其放置在单独的文件夹中来实现。

我想完成同样的事情,但是我不想将其应用于每个文件,而是希望将其应用于指定文件夹中的所有文件。这是我必须在单个文件上完成的操作:

keywords = ['enable', 'password', 'secret', 'key', 'community']
file_name = str(input("Enter File Name:"))
with open(r"C:\Users\er\Desktop\\" + file_name) as oldfile, \
     open(r"C:\Users\er\Desktop\Clean_Files\\" + file_name, 'w') as newfile:
    for line in oldfile:
        if not any(keyword in line for keyword in keywords):
            newfile.write(line)

有谁知道如何做到这一点?

Lmiguelvargasf

您需要使用os.listdir(path='.'),使用此循环,然后将其与已经拥有的逻辑一起使用:

import os

keywords = ['enable', 'password', 'secret', 'key', 'community']

for file_name in os.listdir('path\\to\\your\\directory'):
    with open(r"C:\Users\er\Desktop\\" + file_name) as oldfile, open(r"C:\Users\er\Desktop\Clean_Files\\" + file_name, 'w') as newfile:
        for line in oldfile:
            if not any(keyword in line for keyword in keywords):
               newfile.write(line)

请注意,如果您不将文件传递给os.listdir(),它将使用当前目录作为路径。

另外,如@pylang所述,您可以使用pathlib.Path("path/to/dir/").iterdir()代替os.listdir('path\\to\\your\\directory')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章