python路径字符串拼接os.path.join()出现反斜杠‘\‘问题

记录自己学习过程中遇到的问题

2024年12月5日在B站学习《PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】》

P6 Dataset类代码实践中遇到python路径字符串拼接os.path.join()出现反斜杠‘\‘问题

代码

import os
root_dir = "dataset/train"
label_dir = "ants_image"
path = os.path.join(root_dir,label_dir)
print(path)

执行结果:

dataset/train\ants_image

解决问题:

import os
root_dir = "dataset/train/"
label_dir = "ants_image"
path = os.path.join(root_dir,label_dir)
print(path)

执行结果:

dataset/train/ants_image

分析 

os.path.join()在Linux/macOS下会以斜杠(/)分隔路径,而在Windows下则会以反斜杠(\)分隔路径

结论

python路径拼接,记得以‘/’结尾,才能保证跨平台使用。

参考链接 

csdn:https://blog.youkuaiyun.com/lhb_0531/article/details/126833546

B站:P6. Dataset类代码实战_哔哩哔哩_bilibiliP6. Dataset类代码实战是PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】的第7集视频,该合集共计33集,视频收藏或关注UP主,及时了解更多相关视频内容。icon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1hE411t7RN/?p=7&spm_id_from=333.880.my_history.page.click&vd_source=a0b207471139718c842f7caacd8e05ea

Python中为了避免使用 `os.path.join()` 出现反斜杠(特别是在Windows平台上),你可以采取以下措施: ### 1. 使用 `pathlib` 模块 `pathlib` 提供了一种面向对象的方式来处理文件系统路径,并且它会自动适应当前操作系统的路径格式。无论在哪种操作系统上运行,都能得到正确的结果。 ```python from pathlib import Path # 创建Path对象并连接路径 file_path = Path('D:/2023-TAIYI') / '22-数据分析' / '3.SensAnalysis' / 'T250206' / 'SensResult-V5.0.2.3-000.xlsx' print(file_path) ``` 这种方式不仅简洁明了而且不容易出错,因为它会智能地选择适合当前操作系统的分隔符。 ### 2. 强制使用正斜杠 `/` 如果你想确保所有的路径都使用正斜杠作为分隔符,可以在构建路径之后将整个字符串替换掉其中的反斜杠。 ```python import os def safe_join(*args): return '/'.join(args).replace('\\', '/') file_path = safe_join('D:', '2023-TAIYI', '22-数据分析', '3.SensAnalysis', 'T250206', 'SensResult-V5.0.2.3-000.xlsx') print(file_path) ``` 但是这种方法不如使用 `pathlib` 那么优雅和可靠,因为需要你自己手动去处理不同平台之间的差异。 ### 3. 设置环境变量或配置项 有时也可以通过更改脚本执行环境中的某些设置来影响默认的行为,例如改变 Python 的工作目录或者是调整 IDE 的设定等,但这通常是不必要的复杂化解决问题的过程。 综上所述,推荐优先选用 `pathlib` 来替代传统的 `os.path.join()`, 它能帮你写出更具可读性和跨平台性的代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值