五、分解路径名
假设我们使用变量fname来存放一个包含完整路径的文件名,例如:
/usr/home/hpl/scripting/python/intro/hw.py
有时候,我们需要将这样的文件路径拆分为基本名称hw.py和目录名/usr/home/hpl/scripting/python/intro。在Python语言中,可以使用下列代码达到目的:
basename = os.path.basename(fname)
dirname = os.path.dirname(fname)
# 或
dirname, basename = os.path.split(fname)
dirname = os.path.dirname(fname)
# 或
dirname, basename = os.path.split(fname)
扩展名是通过os.path.splitext函数提取出来的,
root, extension = os.path.splitext(fname)
这样,fname中的扩展名部分即.py被赋给变量extension,而其余部分则赋给了变量root。如果想得到不带点号的扩展名的话,只需使用os.path.splitext(fname)[1][1:]即可。
假设一个文件名为f,其扩展名随意,若想将其扩展名改为ext,可以使用下面的代码:
newfile = os.path.splitext(f)[0] + ext
下面是一个具体的示例:
>>> f = ’/some/path/case2.data_source’
>>> moviefile = os.path.basename(os.path.splitext(f)[0] + ’.mpg’)
>>> moviefile
’case2.mpg’
>>> moviefile = os.path.basename(os.path.splitext(f)[0] + ’.mpg’)
>>> moviefile
’case2.mpg’