Python - 特定文件被拒绝许可

Python - Specific Files Denied Permission

我试图遍历目录中的 22 个 .txt 文件,从文件中读取每一行,并应用一些条件,然后将修改后的行写入不同文件夹中新创建的文件。

问题是前 12 个文件已成功创建,但随后我收到所有后续文件的权限被拒绝错误。失败文件的权限与成功文件的权限完全相同。

这是我的代码的简化版本,为简单起见,排除了一堆 if 条件:

files =  os.listdir('./folder/')
for file in files:
    with open('./folder/' + file, "r") as input:
        with open('./folder/mod/' + file[:-4] + '_mod.txt', "w") as output:
            lines = input.readlines()
            for i in range(len(lines)):
                if lines[i][-7:-1] != '    },':
                    output.write('\n' + lines[i][:-4].replace('"',''))
        output.close()
    input.close()

我试图从源文件夹中完全排除前 12 个文件,然后一个文件都没有写入。好像问题真的在于 .txt 文件本身。这些文件都是同时生成的,而且都比较简单,所以我无法确定它们之间有什么区别。

这是返回的堆栈跟踪:

Traceback (most recent call last):
  File "C:\Users\myname\Documents\project1\main.py", line 8, in <module>
    with open('./folder/' + file, "r") as input:
IOError: [Errno 13] Permission denied: './folder/mod'

***编辑 如果我在源文件夹中只留下1个读写成功的文件,操作成功但我仍然得到相同的权限被拒绝的错误。

堆栈跟踪表明问题在于:

`with open('./folder/' + file, "r") as input:`

正在尝试打开并阅读“folder/mod/”

os.listdir() 将创建文件夹中所有内容的列表,包括目录。 因此,由于您无法“读取”目录,python 给您一个权限错误。

添加一个测试以查看 for 循环中的“文件”是否实际上是一个文件应该可以解决问题: