跟老齐学Python之折腾一下目录(2)
split(p)
Split a pathname. Returns tuple "(head, tail)" where "tail" is
everything after the final slash. Either part may be empty.
以下将一些典型举例说明:
特别说明,下面的所有操作,均是进入到如下的目录中进行的。
qw@qw-Latitude-E4300:~/Documents/ITArticles/BasicPython/codes$ pwd
/home/qw/Documents/ITArticles/BasicPython/codes #当前目录
qw@qw-Latitude-E4300:~/Documents/ITArticles/BasicPython/codes$ python
Python 2.7.6 (default, Nov 13 2013, 19:24:16)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
文件的绝对路径
>>> import os.path
>>> os.path.abspath("225.py")
'/home/qw/Documents/ITArticles/BasicPython/codes/225.py'
文件 225.py 是真实存在上述路径中的,得到了该文件的绝对路径。但是,如果随便提供一个不在这个目录中的文件,又如何?
>>> os.path.isfile("225.py")
True
>>> os.path.isfile("2222.py")
False
>>> os.path.abspath("2222.py")
'/home/qw/Documents/ITArticles/BasicPython/codes/2222.py'
os.path.isfile(path),可以判断path中是否是文件,其实是判断在该路径中,是否存在那个文件,如果存在则返回True,否则False。上面的操作发现 2222.py 这个文件在当前目录下是不存在的,但是,用os.path.abspaht("2222.py")能够返回一个绝对路径并带有这个不存在的文件的文件名。这里不妨理解为,如果要建立这个文件,它即将被放在那个位置。
按照这样理解,还可:
>>> os.path.abspath("/home/qw/kkkkkkkk.kk")
'/home/qw/kkkkkkkk.kk'
分开目录和文件名
>>> pn = os.path.abspath("225.py")
>>> pn
'/home/qw/Documents/ITArticles/BasicPython/codes/225.py'
>>> os.path.split(pn)
('/home/qw/Documents/ITArticles/BasicPython/codes', '225.py')
>>> path, filename = os.path.split(pn)[0], os.path.split(pn)[1]
>>> path
'/home/qw/Documents/ITArticles/BasicPython/codes'
>>> filename
'225.py'
os.paht.split(),参数是目录加文件名,就可以将路径和文件名分开。其实,我看这个功能不是很智能,你看这样
>>> os.path.split("/home/qw")
('/home', 'qw')
>>> os.path.split("/home/qw/")
('/home/qw', '')
它就是将最后一组认为是文件名了,即最后一个/后面的就是文件名,所以第二个实验中,文件名是空了。是不是有点傻呢?
同样,参数中的文件或者目录,不一定是你的电脑中真实存在的,请看:
>>> os.path.split("/foo/python/qiwsir/git.git")
('/foo/python/qiwsir', 'git.git')
只要符合目录书写结构,就可以分解了。
有另外两个属性,是os.path.split()的分别执行,即可以分别获得路径和文件名,这样让操作更简单了。
- 上一篇:跟老齐学Python之网站的结构
- 下一篇:跟老齐学Python之私有函数和专有方法