在Python中删除文件时得到错误 "进程无法访问文件"。

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

我正在做一个项目,在这个项目中,我有很多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. 有什么办法可以删除该文件。请帮助。谢谢你的帮助。

python delete-file
1个回答
1
投票

该错误的出现是因为该文件仍然是打开的。你必须在尝试删除它之前关闭它。所以,当你加载了数据之后,请执行以下操作 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)

5
投票

你需要在删除文件之前关闭它。在os.remove(file_path)语句之前使用f.close()。

© www.soinside.com 2019 - 2024. All rights reserved.