源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

跟老齐学Python之折腾一下目录

  • 时间:2020-04-06 20:10 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:跟老齐学Python之折腾一下目录
python在安装的时候,就自带了很多模块,我们把这些模块称之为标准库,其中,有一个是使用频率比较高的,就是 os 。这个库中方法和属性众多,有兴趣的看官可以参考官方文档: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. >>>
文件的绝对路径
[u]复制代码[/u] 代码如下:
>>> import os.path >>> os.path.abspath("225.py") '/home/qw/Documents/ITArticles/BasicPython/codes/225.py'
文件 225.py 是真实存在上述路径中的,得到了该文件的绝对路径。但是,如果随便提供一个不在这个目录中的文件,又如何?
[u]复制代码[/u] 代码如下:
>>> 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")能够返回一个绝对路径并带有这个不存在的文件的文件名。这里不妨理解为,如果要建立这个文件,它即将被放在那个位置。 按照这样理解,还可:
[u]复制代码[/u] 代码如下:
>>> os.path.abspath("/home/qw/kkkkkkkk.kk") '/home/qw/kkkkkkkk.kk'
分开目录和文件名
[u]复制代码[/u] 代码如下:
>>> 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(),参数是目录加文件名,就可以将路径和文件名分开。其实,我看这个功能不是很智能,你看这样
[u]复制代码[/u] 代码如下:
>>> os.path.split("/home/qw") ('/home', 'qw') >>> os.path.split("/home/qw/") ('/home/qw', '')
它就是将最后一组认为是文件名了,即最后一个/后面的就是文件名,所以第二个实验中,文件名是空了。是不是有点傻呢? 同样,参数中的文件或者目录,不一定是你的电脑中真实存在的,请看:
[u]复制代码[/u] 代码如下:
>>> os.path.split("/foo/python/qiwsir/git.git") ('/foo/python/qiwsir', 'git.git')
只要符合目录书写结构,就可以分解了。 有另外两个属性,是os.path.split()的分别执行,即可以分别获得路径和文件名,这样让操作更简单了。
[u]复制代码[/u] 代码如下:
>>> os.path.dirname("/foo/python/qiwsir/git.git") '/foo/python/qiwsir' >>> os.path.basename("foo/python/qiwsir/git.git") 'git.git'
判断 前面稍微提到了os.path.isfile()可以用来判断一个文件是否存在,那么判断目录路径是否存在,可否?可:
[u]复制代码[/u] 代码如下:
>>> os.path.exists("/foo/python/qiwsir")  False >>> os.path.exists("/home/qw/Documents") True
判断相关的属性还有: os.path.isabs(path):判断path是否为绝对路径 os.paht.isdir(path):判断path是否为存在的目录 组合路径 将两个或多个对象组合起来,是常见的事情,那么如何将多个路径组合呢?如下:
[u]复制代码[/u] 代码如下:
>>> os.path.join("/home/python","/BasicsPython","226.md") '/BasicsPython/226.md'
特别提醒,这个属性的返回值中,将第一个绝对路径忽略。
[u]复制代码[/u] 代码如下:
>>> os.path.join("/","/home/qw","learnpython.md") '/home/qw/learnpython.md'
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部