Windows 上的 Python:IOError:[Errno 2] 没有这样的文件或目录 [重复]

问题描述 投票:0回答:2

我正在尝试从包含某些“黑名单”内容的文件夹中删除所有文件。我有这个代码:

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'

为什么会出现这种情况?

python ioerror
2个回答
6
投票

os.listdir
返回文件名,而不是完整路径。

PATH = "C:/path/to/files/"
for filename in os.listdir(PATH):
    content = open(os.path.join(PATH, filename)).read()

这里,

os.path.join
用于合并路径和文件名。


1
投票

如果要删除文件,则应传递文件的整个路径。

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)
© www.soinside.com 2019 - 2024. All rights reserved.