删除 Python 中的文件时出现错误 "Process cannot access file"

Getting error "Process cannot access file" while deleting file in Python

我正在做一个项目,我在一个目录中存储了很多 json 文件。我需要阅读所有文件并检查那里的数据。如果任何文件中存在“sessionisfalse”,我需要删除该文件。下面是代码:

files = os.listdir(config_files_path)
for file in files:
    file_path = config_files_path + '//' + file
    f = open(file_path)

    data = json.load(f)

    if not data['session']:
        # delete this file
        os.remove(file_path)

在上面的代码中,我得到了所有文件的列表。然后遍历每个文件并在 data 中读取其内容。 if not data['session'],我需要删除那个文件。但是这样做我得到 process cannot access the file as its being used by another process。有什么办法可以删除文件。请帮忙。谢谢

您需要先关闭该文件,然后再删除它。 在 os.remove(file_path) 语句

之前使用 f.close()

出现错误是因为文件仍处于打开状态。在尝试删除它之前,您必须关闭它。因此,在加载数据后,执行 f.close()。像这样:

files = os.listdir(config_files_path)
for file in files:
    file_path = config_files_path + '//' + file

    f = open(file_path)
    data = json.load(f)
    f.close()  # <-- close the file

    if not data['session']:
        # delete this file
        os.remove(file_path)