错误代码
Traceback (most recent call last):
File “D:_software\codeSoftware\pythonProject\main.py”, line 143, in
voc2coco.parse_voc_annotation()
File “D:_software\codeSoftware\pythonProject\main.py”, line 106, in parse_voc_annotation
with open(self.output_coco_path, ‘w’) as f:
PermissionError: [Errno 13] Permission denied: ‘D:/Project/roadDamageDataSet-1/UAV’
错误原因
权限错误:[errno 13]权限被拒绝:
错误产生的原因是文件无法打开,可能产生的原因是文件找不到,或者被占用,或者无权限访问,或者打开的不是文件,而是一个目录。
解决方案
解决方案如下:
1.检查对应路径下的文件是否存在,且被占用。如果文件不存在,就找到对应文件即可;如果文件存在,被占用,将占用程序暂时关闭。
2.修改cmd的权限,以管理员身份运行。
3.检查是否是打开了文件夹。
4.文件夹属于只读属性
在重复了1-3之后都无用,就开始使用4地方法,出现了第二个问题就是没有办法保存只读属性的选项。
5.你看看你有没有在文件路径里忘记写文件名字了!!!!!!!!!!!!!!!!!!!!!!!
本人代码:
# annocation
output_coco_path = 'D:/Project/DataSet-1/UAV
with open(self.output_coco_path, 'w+') as f:
json.dump(self.data, f,indent=4)
在路径后面加了json文件就运行成功了!!!:
# annocation
output_coco_path = 'D:/Project/DataSet-1/UAV/CRNN_coco.json
with open(self.output_coco_path, 'w+') as f:
json.dump(self.data, f,indent=4)
此处open函数需要打开一个json文件名才可以写入,如果文件不存在它也可以根据文件名去创建,但是什么都不写只有文件夹无含名字的json文件名是万万不可的…………所以本质上是属于1.类问题,需要提供open函数一个文件参数而不是文件夹。
小小问题卡了一晚上,希望大家不要遇到同样的粗心错误:(