我正在尝试从包含某些“黑名单”内容的文件夹中删除所有文件。我有这个代码:
import os
black_list = [line for line in open("C:/path/to/blacklist.txt")]
for filename in os.listdir("C:/path/to/files/"):
content = open(filename).read()
if any(line in content for line in black_list):
os.remove(filename)
但是我收到如下错误:
IOError: [Errno 2] No such file or directory: 'first_file_from_the_folder'
为什么会出现这种情况?
os.listdir
返回文件名,而不是完整路径。
PATH = "C:/path/to/files/"
for filename in os.listdir(PATH):
content = open(os.path.join(PATH, filename)).read()
这里,
os.path.join
用于合并路径和文件名。
如果要删除文件,则应传递文件的整个路径。
import os
black_list = [line for line in open("C:/path/to/blacklist.txt")]
path = "C:/path/to/files/"
for filename in os.listdir(path):
content = open(path+ filename).read()
if any(line in content for line in black_list):
os.remove(path + filename)