python 读取目录时 省略之前目录点的个数 及斜杠的方向总结

如果你是因为读取文件报错的话,那首先你看自己的文件路径,python中,‘ \ ’是转义字符,在写读取文件路径的时候如, ‘E:\z paddlede\PaddleDetection-release-0.2\dataset\mine\val.txt’使用这样的格式, 使用’ / ‘而不是 ’ \ ’
非要用’\‘的话,那就用两次 即’ \\’, 或者在 \ 前的双引号前加个r表示里面无转义字符,
下面标题二里有详细代码.

((由于csdn显示问题以下面代码里面的点和斜杠为主,
代码外的文中的有可能会有空格,如果复制运行的话会报错)
)

(一)省略之前目录点的个数(读取相对路径文件)

第一种情况:该程序和打开文件的文件夹在同一目录下如图
一个点
在这里插入图片描述

with open(r".\bb\mine\val.txt", 'r') as fr:
     data = fr.readlines()
     print(data)

分割线-------------------------------------------------------------------------------------------------------------------

第二种,该程序的所在文件夹,和打开文件的文件夹在同一目录下如图下图
两个点
在这里插入图片描述


#第二种,该程序的所在文件夹,和打开文件的文件夹在同一目录下

with open(r"..\dataset\mine\val.txt", 'r') as fr:
     data = fr.readlines()
     print(data)

然后就这两种情况了,我本来想试三个点的,即-----该程序的所在文件夹的所在文件夹,和打开文件的文件夹在同一目录下,这种情况,但是发生了报错,目前也没有看到用的.

斜杠的方向

以下的用法注意方向和r,再重复一片‘ \ ’是转义字符,在写读取文件路径的时候如, ‘E:\z paddlede\PaddleDetection-release-0.2\dataset\mine\val.txt’使用这样的格式, 使用’ / ‘而不是 ’ \ ’

非要用’\‘的话,那就用两次 即’ \\’, 或者在 \ 前的双引号前加个r表示里面无转义字符,以下为详细例子,win7 python3环境下亲测读取方法可用




for line in open(r".\\train.txt"):
    name_prefix = line.strip().split()[0]
    print(name_prefix)

for line in open(".\\train.txt"):
    name_prefix = line.strip().split()[0]
    print(name_prefix)

#下面两种都可以
for line in open(r"./val.txt"):
    name_prefix = line.strip().split()[0]
    print(name_prefix)

for line in open("./train.txt"):
    name_prefix = line.strip().split()[0]
    print(name_prefix)
#输出一大堆 就不贴了

#但是使用'\'的话,由于转义字符的原因便必须要加r 如下
for line in open(r".\train.txt"):
    name_prefix = line.strip().split()[0]
    print(name_prefix)

这里值得注意的是,当你使用r后,里面斜杠的方向就无所谓了,所以你写成下面这样也是可以运行的

with open(r"E:/z paddlede\PaddleDetection-release-0.2\dataset/mine\val.txt", 'r') as fr:
    data = fr.readlines()
    print(data)

总结: 程序和打开文件的文件夹在同一目录下的,省略之前文件路径用一个点 .
.
程序的所在文件夹,和打开文件的文件夹在同一目录下的,省略之前文件路径用两个点

           (特别的 用三个点省略系统报错)

##################################################
最后关于斜杠再多说一点
(r的作用是在没有转义字符和不能打印的字符的语句里,用的,免得斜杠变成别的 比如\n 就成了换行符, 实际上我现在在csdn上编写文档的时候,打出两根 \\ 实际上我是在编辑文档里打了三根斜杠, 就是因为有转义字符存在,系统当我写入三次斜杠后才判断我是想打两个斜杠,在打两个斜杠时则判断这个可能是一个两个斜杠的转义字符,我截个图你们看看)

在这里插入图片描述

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员进化不脱发!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值