关于python中有关路径实现代码的方法

  • 常用的python方法
  • join()方法
  • split()方法
  • 关于文件路径\ / // \\的用法解释
  • 斜杠/
  • 反斜杠\
  • 读取某个路径的文件
  • 双斜杠//
  • 双反斜杠\\\
  • os.path库的方法
  • 连接路径与路径或文件名
  • 获取绝对路径
  • 获取当前文件的绝对路径
  • 返回文件名字
  • 返回文件所在文件夹的路径


常用的python方法

join()方法

join()方法是用指定的字符来对序列中的元素进行连接,返回一个字符串
的语法为:str.join(sequence)
str代表连接符号。
sequence指要连接的序列,可以是元组,也可以是列表等。

举例如下:

str="/";
seq=("a","b","c")
print(str.join(seq)) 

#结果为:
a/b/c

split()方法

方法为split(str, num),根据指定的分隔符对字符串进行切片,返回一个切分成若干个字符串组成的列表。

  • 第一个参数表示指定的分隔符,以该分隔符为界来进行分割,最终返回的结果不包括分隔符本身。
  • 第二参数表示分割的次数,从左往右按分隔符的位置根据次数进行分割,生成num+1个字符串。该参数可以省略,省略则表示对所有的该分隔符所在的位置进行分割。

举例如下:

#对上述的cur_path进行分割

print(cur_path)
print(cur_path.split('\\'))  #使用\的转义字符来表示\
print(cur_path.split('\\',2)) 
print(cur_path.split('\\',2)[2])

#结果依次为:
C:\Users\13451\Desktop\tong2.py
['C:', 'Users', '13451', 'Desktop', 'tong2.py']
['C:', 'Users', '13451\\Desktop\\tong2.py'] #分割两次
13451\Desktop\tong2.py

关于文件路径\ / // \的用法解释

斜杠/

斜杠/表示url地址(远程网络地址)中使用的分隔符。

另外斜杠/也可以表示Unix内核的目录以及window本地文件的分隔符。

反斜杠\

反斜杠\表示windows本地文件的分隔符。
如:C:\Users\13451\Desktop\tong2.py

另外反斜杠还可以参与构成转移字符。
如果反斜杠\在地址中被当作转义字符,有两种解决办法:

#1.使用\\转移字符来表示\
path1="C:\\Users\\13451\\Desktop\\1.txt"
#2.在地址字符串前加个r
path2=r"C:\Users\13451\Desktop\1.txt"
读取某个路径的文件

根据下面四种路径都能读取文件,达到一样的效果。说明了读取本地文件路径的时候,斜杠和反斜杠没有区别。

x1="C:/Users/13451/Desktop/1.txt"
x2=r"C:\Users\13451\Desktop\1.txt"
x3="C:\\Users\\13451\\Desktop\\1.txt"
x4="C:/Users\\13451/Desktop/1.txt"  #斜杠/和反斜杠\混用

print('x1',x1)  #x1 C:/Users/13451/Desktop/1.txt
print('x2',x2)  #x2 C:\Users\13451\Desktop\1.txt
print('x3',x3)  #x3 C:\Users\13451\Desktop\1.txt
print('x4',x4)  #x4 C:/Users\13451/Desktop/1.txt

with open(x1) as f:  #替换成x2,x3,x4结果都是一样的
	print(f.read())

双斜杠//

双斜杠//用在网络域名访问中,是协议和主机名或IP地址之间的分隔符,以双斜杠//开头的URL是依赖协议的URL表示形式。
URL格式:协议://域名或ip/请求文件路径/文件名。

双反斜杠\\

双反斜杠\\在windows里表示绝对地址的第一项,后面跟IP地址或计算机名,就是需要打开这个IP地址或计算机名对应主机的网络共享资源。

os.path库的方法

连接路径与路径或文件名

os.path.join()用来连接路径名,相当于默认使用了反斜杠\作为连接符号使用join()函数,经常用来把目录和文件合成一个路径。
注意:如果有一个组件是一个绝对路径(也就是用了/),则在它之前的所有要连接的数据均会被舍弃。

str1='saber'
str2='rin'
str3='sakura'
str4='/iriya'
print(os.path.join(str1,str2,str3))
print(os.path.join(str1,str2,str3,str4)) #str4使用了/,则之前的数据都舍弃

#结果:
saber\rin\sakura
/iriya

获取绝对路径

使用os.path.abspath(path)

获取当前文件的绝对路径

使用os.path.abspath(__file__)

import os
cur_path=os.path.abspath(__file__)  #获取当前文件的绝对路径

#结果:
C:\Users\13451\Desktop\tong2.py

返回文件名字

使用os.path.basename(path)

path="C:/Users/13451/Desktop/1.txt"
print(os.path.basename(path))

#结果:
1.txt

返回文件所在文件夹的路径

使用os.path.dirname(path)

path="C:/Users/13451/Desktop/1.txt"
print(os.path.dirname(path))

#结果:
C:/Users/13451/Desktop

关于其他os.path模块的方法可见:Python3 os.path() 模块