吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 658|回复: 33
收起左侧

[求助] 关于Python文件路径的疑惑

[复制链接]
paypojie 发表于 2024-5-14 11:38
本帖最后由 paypojie 于 2024-5-14 11:48 编辑

我也是偶然发现的一个问题 求各位大佬解惑

在Python中 文件路径这样写是错的 我们都知道
f = open('C:\Users\Administrator\readme.txt')

以下三种写法都是对的 这我们也知道
f = open(r'C:\Users\Administrator\readme.txt')
f = open('C:\\Users\\Administrator\\readme.txt')
f = open('C:/Users/Administrator/readme.txt')

但是 如果像下面这样写的话 会出现两种情况

情况一 本来都应该是正斜杠的 但是因为失误 造成了其中的某个反斜杠没有被替换 最神奇的是 运行也能成功 不会出现报错
f = open('C:/Users\Administrator/readme.txt')

情况二 但如果是这样写的话 就会报错(跟上一行代码相比 反斜杠的位置出现了变化)
f = open('C:\Users/Administrator/readme.txt')

不知道报错具体是啥原因 就有点疑惑

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

sgbyg 发表于 2024-5-14 11:42
\A转义后还是A \r会换行 \U。。
 楼主| paypojie 发表于 2024-5-14 11:44
sgbyg 发表于 2024-5-14 11:42
\A转义后还是A \r会换行 %u。。

跟\后面的字符有关 可以这么理解吗
Maxhaha 发表于 2024-5-14 11:47
有一个叫ascll转义  你可以百度搜一下   另外如果你想保持那种方式的话   前面加一个r就行了    例:
[Python] 纯文本查看 复制代码
f = open(r'C:\Users/Administrator/readme.txt')
 楼主| paypojie 发表于 2024-5-14 11:49
Maxhaha 发表于 2024-5-14 11:47
有一个叫ascll转义  你可以百度搜一下   另外如果你想保持那种方式的话   前面加一个r就行了    例:[mw_sh ...

算了 不想保持这种混乱不堪的写法
pjy612 发表于 2024-5-14 12:03
路径 的话 推荐 养成只用一种斜杠的习惯,然后 加上 r 防止转义
whxn 发表于 2024-5-14 12:10
楼主的打开文件的方式虽然也可以,单正如上述遇到的情况一样,难保不会出错。
一种更好的做法是,使用Python自带的os库,并使用相对路径。方法如下
import os
input_file_loc = "my_folder"
file_name = "example.txt"
input_file = os.path.join(input_file_loc, file_name)
with open(input_file, "r") as f:
       # your code here
 楼主| paypojie 发表于 2024-5-14 12:16
pjy612 发表于 2024-5-14 12:03
路径 的话 推荐 养成只用一种斜杠的习惯,然后 加上 r 防止转义

我的话 会分辨是正斜杠还是反斜杠 正斜杠的话就不加 反斜杠的话就添加r
 楼主| paypojie 发表于 2024-5-14 12:17
whxn 发表于 2024-5-14 12:10
楼主的打开文件的方式虽然也可以,单正如上述遇到的情况一样,难保不会出错。
一种更好的做法是,使用Pyth ...

我还是习惯用绝对路径
risingsun 发表于 2024-5-14 12:30
whxn 发表于 2024-5-14 12:10
楼主的打开文件的方式虽然也可以,单正如上述遇到的情况一样,难保不会出错。
一种更好的做法是,使用Pyth ...

相对路径不能解决所有问题。
比如让用户选择一个文件,然后处理这个文件。这个文件的路径就只能是绝对路径。
代码中写死的文件,那另当别论。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-6-2 07:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表