关于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.txtwith 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() 模块