电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python 解決相對路徑問題:"No such file or directory"

瀏覽:134日期:2022-07-22 17:15:54

如果你取相對路徑不是在主文件里,可能就會有相對路徑問題:'No such file or directory'。

因為 python 的相對路徑,相對的都是主文件。

如下目錄結構:

| -- main.py | -- conf.py | -- start.png| -- config.txt

main.py 是主文件。

conf.py 里引用 config.txt 用相對路徑。

如果用 . 或 … 相對的是 main.py,所以用 './config.txt',相對于 main.py 是同一個目錄下。

.指當前文件所在的文件夾,… 指當前文件的上一級目錄。

補充知識:解決python模塊調用時代碼中使用相對路徑訪問的文件,提示文件不存在的問題

問題分析:

在編碼過程中使用相對路徑使代碼的穩定性更好,即使項目目錄發生變更,只要文件相對路徑不變,代碼依然可以穩定運行。但是在python代碼中使用相對路徑時會存在以下問題,示例代碼結構如下:

Python 解決相對路徑問題:"No such file or directory"

其中test包中包含兩個文件first.py和user_info.txt,first.py代碼中只有一個函數read_file,用于讀取user_info.txt文件第一行的內容,并打印結果,讀取文件使用相對路徑,代碼如下:

import osprint('當前路徑 -> %s' %os.getcwd())def read_file() : with open('user_info.txt' , encoding = ’utf-8’) as f_obj : content = f_obj.readline() print('文件內容 -> %s' %content) if __name__ == ’__main__’ : read_file()

first.py程序代碼執行結果如下:

當前路徑 -> E:程序python代碼PythonDataAnalysisDemotest

文件內容 -> hello python !!!

與test在同一目錄下存在一個second.py文件,在這個文件中調用first.py文件中的read_file方法讀取user_info.txt文件,代碼如下:

from test import first

first.read_file()

second.py程序執行結果如下:

當前路徑 -> E:程序python代碼PythonDataAnalysisDemo

File 'E:/程序/python代碼/PythonDataAnalysis/Demo/second.py', line 8, in <module>

first.read_file()

File 'E:程序python代碼PythonDataAnalysisDemotestfirst.py', line 10, in read_file

with open('user_info.txt' , encoding = ’utf-8’) as f_obj :

FileNotFoundError: [Errno 2] No such fileor directory: ’user_info.txt’

以上信息提示user_info.txt 文件不存在,查看os.getcwd() 函數輸出的當前路徑會發現,當前路徑是 XXX/Demo,而不是上一次單獨執行first.py 文件時的 XXX/Demo/test了,所以程序報錯文件不存在的根本原因是因為當前路徑變了,導致代碼中的由相對路徑構成的絕對路徑發生了變化。

解決方法:

對于這種問題,只需要在使用相對路徑進行文件訪問的模塊中加入以下代碼即可(加粗內容),修改后的first.py代碼如下:

import osprint('當前路徑 -> %s' %os.getcwd())current_path = os.path.dirname(__file__)def read_file() : with open(current_path + '/user_info.txt' , encoding = ’utf-8’) as f_obj : content = f_obj.readline() print('文件內容 -> %s' %content) if __name__ == ’__main__’ : read_file()

first.py 程序執行結果如下:

當前路徑 -> E:程序python代碼PythonDataAnalysisDemotest

current_path -> E:/程序/python代碼/PythonDataAnalysis/Demo/test

文件內容 -> hello python !!!

second.py代碼不變,second.py代碼執行結果如下:

當前路徑 -> E:程序python代碼PythonDataAnalysisDemo

current_path -> E:程序python代碼PythonDataAnalysisDemotest

文件內容 -> hello python !!!

由以上執行結果可以發現,雖然first.py和second.py代碼執行時os.getcwd()函數的輸出結果還是不一致,但是current_path = os.path.dirname(__file__)

代碼得到的current_path路徑是相同的,current_path就是first.py文件所處的路徑,然后再由current_path 和user_info.txt 組成的文件絕對路徑則是固定的,這樣就可以確保在進行模塊導入時,模塊中使用相對路徑進行訪問的文件不會出錯。

以上這篇Python 解決相對路徑問題:'No such file or directory'就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 施工电梯_齿条货梯_烟囱电梯_物料提升机-河南大诚机械制造有限公司 | 不锈钢搅拌罐_高速搅拌罐厂家-无锡市凡格德化工装备科技有限公司 | 成都LED显示屏丨室内户外全彩led屏厂家方案报价_四川诺显科技 | 哔咔漫画网页版在线_下载入口访问指引 | 齿轮减速机_齿轮减速电机-VEMT蜗轮蜗杆减速机马达生产厂家瓦玛特传动瑞环机电 | 飞歌臭氧发生器厂家_水处理臭氧发生器_十大臭氧消毒机品牌 | 中细软知识产权_专业知识产权解决方案提供商 | 美能达分光测色仪_爱色丽分光测色仪-苏州方特电子科技有限公司 | 防堵吹扫装置-防堵风压测量装置-电动操作显示器-兴洲仪器 | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛调查出轨取证公司_青岛婚外情取证-青岛探真调查事务所 | 耙式干燥机_真空耙式干燥机厂家-无锡鹏茂化工装备有限公司 | 有福网(yofus.com)洗照片冲印,毕业聚会纪念册相册制作个性DIY平台 | 四川成都干燥设备_回转筒干燥机_脉冲除尘器_输送设备_热风炉_成都川工星科机电设备有限公司 | 开业庆典_舞龙舞狮_乔迁奠基仪式_开工仪式-神挚龙狮鼓乐文化传媒 | 凝胶成像系统(wb成像系统)百科-上海嘉鹏| 菲希尔X射线测厚仪-菲希尔库伦法测厚仪-无锡骏展仪器有限责任公司 | 神马影院-实时更新秒播 | 镀锌方管,无缝方管,伸缩套管,方矩管_山东重鑫致胜金属制品有限公司 | 活性氧化铝球|氧化铝干燥剂|分子筛干燥剂|氢氧化铝粉-淄博同心材料有限公司 | 蒜肠网-动漫,二次元,COSPLAY,漫展以及收藏型模型,手办,玩具的新媒体.(原变形金刚变迷TF圈) | 广州展览制作工厂—[优简]直营展台制作工厂_展会搭建资质齐全 | 即用型透析袋,透析袋夹子,药敏纸片,L型涂布棒-上海桥星贸易有限公司 | 金刚网,金刚网窗纱,不锈钢网,金刚网厂家- 河北萨邦丝网制品有限公司 | 电子元器件呆滞料_元器件临期库存清仓尾料_尾料优选现货采购处理交易商城 | 首页_欧瑞传动官方网站--主营变频器、伺服系统、新能源、软起动器、PLC、HMI | 污水提升器,污水提升泵,地下室排水,增压泵,雨水泵,智能供排水控制器-上海智流泵业有限公司 | 陶瓷加热器,履带式加热器-吴江市兴达电热设备厂 | 雨水收集系统厂家-雨水收集利用-模块雨水收集池-徐州博智环保科技有限公司 | 帽子厂家_帽子工厂_帽子定做_义乌帽厂_帽厂_制帽厂_帽子厂_浙江高普制帽厂 | 集装箱展厅-住人集装箱住宿|建筑|房屋|集装箱售楼处-山东锐嘉科技工程有限公司 | 企小优-企业数字化转型服务商_网络推广_网络推广公司 | 上海阳光泵业制造有限公司 -【官方网站】 | 长江船运_国内海运_内贸船运_大件海运|运输_船舶运输价格_钢材船运_内河运输_风电甲板船_游艇运输_航运货代电话_上海交航船运 | 中式装修设计_全屋定制家具_实木仿古门窗花格厂家-喜迎门 | 没斑啦-专业的祛斑美白嫩肤知识网站-去斑经验分享 | ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 气力输送设备_料封泵_仓泵_散装机_气化板_压力释放阀-河南锐驰机械设备有限公司 | 多功能干燥机,过滤洗涤干燥三合一设备-无锡市张华医药设备有限公司 | 集菌仪_智能集菌仪_全封闭集菌仪_无菌检查集菌仪厂家-那艾 | 自动气象站_气象站监测设备_全自动气象站设备_雨量监测站-山东风途物联网 | 地源热泵一体机,地源热泵厂家-淄博汇能环保设备有限公司 |