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 循环中的“文件”是否实际上是一个文件应该可以解决问题:
我试图遍历目录中的 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 循环中的“文件”是否实际上是一个文件应该可以解决问题: