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

2024-06-07 13:48:39 浏览数 (3)

本文摘要:本文已解决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:

# 如果没有处理好权限,那么就不能正常写入或者打开文件

四、相关注意事项

说了这么多,大家应该十分清楚了。

如果还有别的报错,欢迎大家在评论区指出~

总结

本文有部分图片或解决方案来源于网络,如侵权请在后台联系博主删除。

0 人点赞