本文摘要:本文已解决Python “No such file or directory“ 的相关报错问题,并总结提出了几种可用解决方案。同时结合人工智能GPT排除可能得隐患及错误。
一、Bug描述
Python的这类 “No such file or directory“问题报错一般都是相对路径或者绝对路径设置错误,并不在当前的路径结构中,那么这类问题应该如何处理呢。
首先我们要明确的一点就是,Python的相对路径是基于主文件所在的路径的。
也就是说,Python的相对路径,相对的都是主文件。这个需要明确。
接下来我们详细讲解一下这个知识点。
二、定位报错原因
首先我们引入一个简单的Python目录结构。
代码语言:javascript复制| -- main.py(主文件)
| -- conf.py(配置文件)
| -- zhouzhou.java(其他杂七杂八的文件)
| -- config.txt(配置文件)
在这其中,main.py是主文件,conf.py利引用config.txt相对路径。
config大家都知道,是配置的意思。
如果用linux中的相关语法,那么.或者…相对的就是main.py了,这个应该不难理解。.是指当前文件所在的文件夹,而两个点…指的是当前文件夹的上一级目录。
所以对于“./config.txt”这个命令来说,就是基于main.py这个同一个目录之下。
所以大家在使用python路径进行文件处理的时候一定要搞对路径,可以解决很多bug。
三、常见的路径错误
在这里给大家举例一些常见的报错情况,(抛开文件名错误这种低级错误不谈!)
代码语言:javascript复制| -- main.py(主文件)
| -- conf.py(配置文件)
| -- zhouzhou.java(其他杂七杂八的文件)
| -- config.txt(配置文件)
3.1 绝对与相对路径错误
首先我们还是按照最开始提到的文件目录~
代码语言:javascript复制# 下面两行代码就是错误的使用了相对路径
file_path = '/zhouzhou.java'
with open(file_path, 'r') as file:
# 使用正确的相对路径
file_path = './zhouzhou.java'
with open(file_path, 'r') as file:
# 文件操作
# 正确示例:使用绝对路径,注意要把路径打完整来
file_path = '/user/zhouzhoudedaima/zhouzhou.java'
with open(file_path, 'r') as file:
3.2 文件所在的目录错误
在写路径时,除了上面的问题,还要注意所在目录是否存在
代码语言:javascript复制# 如果zhouzhou文件夹不存在,那么就会报错
file_path = './zhouzhou/zhou.java'
with open(file_path, 'r') as file:
# 接下来是正确代码示例
import os
directory = './zhouzhou'
if not os.path.exists(directory):
os.makedirs(directory)
# 我们先进行路径是否存在的判断处理
# 如果路径不存在就抛出异常
file_path = './zhouzhou/zhouzhou.java'
with open(file_path, 'r') as file:
3.3 文件权限错误
如果我们访问的文件权限有特殊限制,那么也会出现这类报错。
我们就需要把代码写好,分清楚r还是w。
代码语言:javascript复制with open(file_path, 'r') as file:
with open(file_path, 'w') as file:
# 如果没有处理好权限,那么就不能正常写入或者打开文件
四、相关注意事项
说了这么多,大家应该十分清楚了。
如果还有别的报错,欢迎大家在评论区指出~
总结
本文有部分图片或解决方案来源于网络,如侵权请在后台联系博主删除。