已解决Python “No such file or directory“问题报错

本文摘要:本文已解决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后台与我沟通交流,也欢迎您点击下方的链接直接加入到我的交流社群!~ 跳转链接社区~

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员洲洲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值