Python路径应基于脚本位置动态生成而非硬编码:用Path(__file__).parent构建绝对路径,避免依赖当前工作目录;相对路径以工作目录为起点易出错,推荐统一以脚本位置为基准构造路径。

Python 中路径写法关键看你是想让代码在任何位置都能运行(推荐用绝对路径逻辑),还是只在当前目录下临时测试(可用相对路径)。但要注意:Python 本身没有“绝对路径语法”和“相对路径语法”的区别,只有字符串写法不同,真正起作用的是你如何构造这个字符串。
相对路径以当前工作目录(不是脚本所在目录)为起点。比如你在终端进入 /home/user/project 后运行 python script.py,那当前工作目录就是这个路径。
"data/file.txt" → 当前目录下的 data 文件夹里的文件"../config.ini" → 上一级目录中的配置文件
"./logs/app.log" → 当前目录下 logs/app.log(./ 可省略)硬写 "/home/user/project/data/file.txt" 或 "C:\Users\Name\project\data.txt" 看似是绝对路径,但会严重限制代码移植性——换台电脑就报错。真正可靠的“绝对路径”,是基于脚本位置动态生成的:
Path(__file__).parent(推荐,Python 3.4+):from pathlib import Path<br>config_path = Path(__file__).parent / "config.ini"
os.path.dirname(__file__)(兼容老版本):import os<br>config_path = os.path.join(os.path.dirname(__file__), "config.ini")
这样得到的路径,永远相对于脚本文件本身,不依赖你从哪启动 Python。
很多人误以为 open("data.txt") 是找脚本同目录的文件,其实它找的是你运行命令时所在的目录。比如:
简小派
简小派是一款AI原生求职工具,通过简历优化、岗位匹配、项目生成、模拟面试与智能投递,全链路提升求职成功率,帮助普通人更快拿到更好的 offer。
123
查看详情
/a/b/script.py,你在 /x/y 下执行 python /a/b/script.py,那么 "data.txt" 就去 /x/y/data.txt 找/a/b/data.txt
所以除非你明确控制运行位置,否则少用纯相对路径字符串操作文件。
如果项目有固
定结构(如 myapp/ 下有 src/ 和 data/),建议统一用脚本位置为基准构建路径:
data_dir = Path(__file__).parent.parent / "data"(向上两级到项目根,再进 data)db_path = data_dir / "app.db"db_path.open() 或转成字符串 str(db_path)
这样整个项目挪到别的机器或路径,只要内部结构不变,就完全不用改路径代码。
基本上就这些。核心就一条:别靠人眼拼路径,用 pathlib.Path 动态算,既清晰又可靠。
以上就是python绝对路径和相对路径怎么写的详细内容,更多请关注其它相关文章!
相关文章:
千牛数据看板网页版_千牛数据看板网页版访问方法
c++ dfs和bfs代码 c++深度广度优先搜索算法
PHP中高效并行检查多链接状态的教程
电脑安装程序提示“错误1722”怎么办_Windows Installer服务问题解决【教程】
俄罗斯方块最新版入口 俄罗斯方块在线玩官网入口
在J*a中如何开发简易博客标签推荐系统_博客标签推荐项目实战解析
小米汽车11月交付量突破40000台!雷军:将继续努力
《刺客信条4:黑旗》重制版新细节曝光:无缝加载 地图更细致!
Basecamp怎样用留言钉固定重点_Basecamp用留言钉固定重点【重点标记】
微信群消息显示延迟如何解决 微信群消息刷新优化方法
Python async/await 协程:CPU密集型任务的陷阱与解决方案
Win11怎么关闭快速启动_Win11彻底关机设置教程
Python多线程中正确使用sigwait处理SIGALRM信号
解决Rails应用中内容错位与Turbo警告:meta标签误用导致富文本渲染异常
excel怎么提取文本中数字 excel函数提取技巧
高德地图公交到站提醒失败如何解决 高德提醒权限设置
蓝湖怎样用切图标注提对接效率_蓝湖用切图标注提对接效率【设计对接】
海棠账号登录入口_登录海棠账户同步阅读记录
微博网页版官方账号登录 微博网页版内容浏览使用指南
将PCM16音频转换为W*并编码为Base64:浏览器环境下的手动处理指南
Win11怎么开启卓越性能模式 Win11电源选项启用高性能释放硬件潜力【方法】
蛙漫限时开放最深处链接_蛙漫全站漫画会员同款秒开地址
J*aScript:在map操作中高效处理空数组
《刺客信条:影》PS5 Pro和Switch 2画面对比
Lar*el如何生成PDF或Excel文件_Lar*el文档导出工具与使用教程
小红书怎么解除第三方平台绑定_小红书多平台登录解绑方法介绍
Excel如何用迷你图显趋势_Excel用迷你图显趋势【趋势小图】
html两个JS只运行一个怎么办_让双JS在html中都运行方法【技巧】
Go语言实现持久化与原子性文件存储的教程
Windows10怎么开启存储感知 Windows10系统设置自动清理临时文件释放C盘空间【教程】
顺丰快递查单号物流信息 顺丰快递小程序查询入口
Web Components中自定义开关组件状态同步的常见陷阱与解决方案
Go语言中JSON数据解码与字段访问指南
夸克浏览器图书入口 夸克手机浏览器阅读入口
Safari怎么安装扩展程序 浏览器插件安装与管理方法【详解】
WooCommerce后台产品编辑页:获取分类ID并实现角色权限控制
html5 app怎么运行环境_配html5 app运行环境【教程】
QQ邮箱官网登录入口 QQ邮箱网页版邮箱快速登录
从OpenAI API响应中高效提取生成文本
uc手机浏览器网页版入口 uc浏览器手机版便捷登录首页
动漫岛观看全网网 动漫岛在线正版动漫入口
葱吃多了会怎样 葱吃多了会伤胃吗
微信怎么把收藏的内容分类管理 微信收藏内容标签分类方法
qq浏览器打开空白页怎么办 qq浏览器启动后显示白屏的解决教程
windows10怎么关闭系统提示音_windows10彻底静音设置方法
Tabulator表格日期时间排序问题及自定义解决方案
Golang如何使用bytes.Split分割字节切片_Golang bytes切片分割方法
优化 Python 函数中的条件逻辑:解决 if-else 嵌套与参数选择问题
包子漫画官方网站在线链接-包子漫画在线阅读平台主页地址
解决PHP会话Cookie在跨域请求中不保留的问题