本文摘要:本文已解决Python “No such file or directory“ 的相关报错问题,并总结提出了几种可用解决方案。同时结合人工智能GPT排除可能得隐患及错误。
😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号:程序员洲洲。
🎈 本文专栏:本文收录于洲洲的《解决Bug》系列专栏,该专栏记录了许多常见的各种开发Bug、环境配置类Bug、代码Bug等等。欢迎大家关注本专栏~专栏一键跳转
🤓 同时欢迎大家关注其他专栏,我将分享Web前后端开发、人工智能、机器学习、深度学习从0到1系列文章。
🌼 同时洲洲已经建立了程序员技术交流群,如果您感兴趣,可以私信我加入我的社群~社群中将不定时分享各类福利
🖥 随时欢迎您跟我沟通,一起交流,一起成长、进步!点此即可获得联系方式~
一、Bug描述
Python的这类 “No such file or directory“问题报错一般都是相对路径或者绝对路径设置错误,并不在当前的路径结构中,那么这类问题应该如何处理呢。
首先我们要明确的一点就是,Python的相对路径是基于主文件所在的路径的。
也就是说,Python的相对路径,相对的都是主文件。这个需要明确。
接下来我们详细讲解一下这个知识点。
二、定位报错原因
首先我们引入一个简单的Python目录结构。
| -- main.py(主文件)
| -- conf.py(配置文件)
| -- zhouzhou.java(其他杂七杂八的文件)
| -- config.txt(配置文件)
在这其中,main.py是主文件,conf.py利引用config.txt相对路径。
config大家都知道,是配置的意思。
如果用linux中的相关语法,那么.或者…相对的就是main.py了,这个应该不难理解。.是指当前文件所在的文件夹,而两个点…指的是当前文件夹的上一级目录。
所以对于“./config.txt”这个命令来说,就是基于main.py这个同一个目录之下。
所以大家在使用python路径进行文件处理的时候一定要搞对路径,可以解决很多bug。
三、常见的路径错误
在这里给大家举例一些常见的报错情况,(抛开文件名错误这种低级错误不谈!)
| -- main.py(主文件)
| -- conf.py(配置文件)
| -- zhouzhou.java(其他杂七杂八的文件)
| -- config.txt(配置文件)
3.1 绝对与相对路径错误
首先我们还是按照最开始提到的文件目录~
# 下面两行代码就是错误的使用了相对路径
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 文件所在的目录错误
在写路径时,除了上面的问题,还要注意所在目录是否存在
# 如果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。
with open(file_path, 'r') as file:
with open(file_path, 'w') as file:
# 如果没有处理好权限,那么就不能正常写入或者打开文件
四、相关注意事项
说了这么多,大家应该十分清楚了。
如果还有别的报错,欢迎大家在评论区指出~
总结
本文有部分图片或解决方案来源于网络,如侵权请在后台联系博主删除。
Hello,各位看官老爷们好,洲洲已经建立了技术交流群,如果你很感兴趣,可以私信我加入我的社群。
📝社群中不定时会有很多活动,例如每周都会包邮免费送一些技术书籍及精美礼品、学习资料分享、大厂面经分享、技术讨论、行业大佬创业杂谈等等。
📝社群方向很多,相关领域有Web全栈(前后端)、人工智能、机器学习、自媒体变现、前沿科技文章分享、论文精读等等。
📝不管你是多新手的小白,都欢迎你加入社群中讨论、聊天、分享,加速助力你成为下一个技术大佬!也随时欢迎您跟我沟通,一起交流,一起成长。变现、进步、技术、资料、项目、你想要的这里都会有
📝网络的风口只会越来越大,风浪越大,鱼越贵!欢迎您加入社群~一个人可以或许可以走的很快,但一群人将走的更远!
📝关注我的公众号(与CSDN同ID:程序员洲洲)可以获得一份Java 10万字面试宝典及相关资料!~
📝想都是问题,做都是答案!行动起来吧!欢迎评论区or后台与我沟通交流,也欢迎您点击下方的链接直接加入到我的交流社群!~ 跳转链接社区~