可以通过os模块的sep属性获得当前属性的路径分隔符
print(os.sep)
# 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
在Linux中用斜杠/
进行路径分隔,这不会有什么问题。但是在Windows中,路径是以反斜杠\
进行分隔的,我么知道,反斜杠在编码中承担这转义字符的作用,比如\n
表示换行\t
是制表符,如果是\name
这样的路径,只这样路径就会被系统误读,一种常用的解决办法是,使用\\
表示,可以理解为反斜杠是转义,在前面再加一个反斜杠就又给它转义了一次,就转回来了,这样windows中路径就可以正确表示了,eg.
path = 'E:\\Test\\v2idemo.flv'
在Windows下的python环境中的路径表示中,直接以斜杆/
代替反斜杠\
的表示方式也是可以被识别的,eg.
path = 'E:/Test/v2idemo.flv'
此外,python中还有一中表示方式是在字符串前加r
,以此取消其后紧跟字符串中的转义字符作用,eg.
path = r'E:\Test\v2idemo.flv'
- 一个小应用,根据全路径获取文件名
path = r'E:\Test\v2idemo.flv'
filename = path.split(os.sep)[-1].split('.')[0]
print(filename) # v2idemo
# 其中
# path.split(os.sep)根据路径分隔符把路径分离成列表['E:', 'Test', 'v2idemo.flv']
# [-1]是去上列表的最后一项'v2idemo.flv'
# .split('.')是把上用'.'进行分割['v2idemo', 'flv']
# [0]取上索引0的内容,也就是文件名了