Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从文件夹中的文件中删除行?_Python_Windows - Fatal编程技术网

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

Python 如何从文件夹中的文件中删除行?,python,windows,Python,Windows,我有一个Python脚本,可以删除文件夹中包含某些关键字的文件行。它通过创建一个单独的文件并将其放置在一个单独的文件夹中来实现这一点 我想完成同样的事情,但不是在每个文件的基础上,我想把它应用到指定文件夹中的所有文件。以下是我必须在单个文件中完成的内容: keywords = ['enable', 'password', 'secret', 'key', 'community'] file_name = str(input("Enter File Name:")) with open(r"C:\

我有一个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)
有人知道如何做到这一点吗?

您需要使用这个循环,然后将它与您已有的逻辑结合使用:

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”)

或者,循环
pathlib.Path(“Path/to/dir/”).iterdir()
@pylang,谢谢,我更新了我的答案,添加了您的贡献。我收到一个异常处理错误,指出“未定义名称“os”。@erodr777,您必须导入
os
模块。我刚刚更新了我的答案。你们太棒了!它工作得很好。非常感谢你!