信息发布→ 登录 注册 退出

python绝对路径和相对路径怎么写

发布时间:2025-12-05

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

python绝对路径和相对路径怎么写

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
  • 结果 FileNotFoundError —— 因为文件其实在 /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在跨域请求中不保留的问题 

在线客服
服务热线

服务热线

4008988990

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!