目录
前言
在使用PyCharm编写python文件涉及到文件读取等IO操作时,使用的是PyCharm的“复制路径”得到的相对路径,出现文件目录找不到之类的错误,并且您确定自己的相对路径没有问题的话,那么这篇文章可能对您有点用处。
错误重现
1.使用PyCharm新建一个Python项目
2.简单的项目结构
我创建了一个img目录用来存放图片,一个python包用来放python文件,一个output目录用来存放输出的目标目录,整个过程就是一个简单的图片copy过程
3.添加对应的内容
图片
Python代码
img_name = '好看的太阳'
input_url = "img/20210609.jpg"
output_url = f"output/{img_name}.jpg"
def copy_img(input_url, output_url):
with open(file=input_url, mode='rb') as rf:
with open(file=output_url, mode='wb') as wf:
date = rf.read()
wf.write(date)
if __name__ == '__main__':
copy_img(input_url=input_url, output_url=output_url)
4.执行代码,重现错误
经过我仔细的反反复复的确认,我很肯定,我都路径没有问题。因为我是通过PyCharm获取的相对路径
发生错误的原因
PyCharm的问题,文件相对路径默认为当前目录,而不是项目的根目录,虽然我们通过PyCharm的复制引用复制的是项目根目录,但当前的项目配置中不是。
解决当前问题
点击我选中的位置,进入当前文件的配置界面
我选中的蓝色高亮区域,可以清楚的看见,当前工作目录为当前文件的所在目录,我们修改一下,改成项目的根目录
保存更改,继续执行
成功!!!
错误解决了,但是,注意我前面加粗的,修改的是当前文件的工作目录,在创建一个新的文件试试
查看新建文件的工作目录
依然没变!
尾声
如果觉得比较麻烦的话,也可以换一种写法
img_name = '好看的太阳2'
# input_url = "img/20210609.jpg"
# output_url = f"output/{img_name}.jpg"
input_url = "../img/20210609.jpg"
output_url = f"../output/{img_name}.jpg"
def copy_img(input_url, output_url):
with open(file=input_url, mode='rb') as rf:
with open(file=output_url, mode='wb') as wf:
date = rf.read()
wf.write(date)
if __name__ == '__main__':
copy_img(input_url=input_url, output_url=output_url)
也没有问题
如果这篇文章能帮助到您,那么这篇文件就有意义!
感谢您的观看!