python 目录
python在安装的时候,就自带了很多模块,我们把这些模块称之为标准库,其中,有一个是使用频率比较高的,就是 os 。这个库中方法和属性众多,有兴趣的看官可以参考官方文档:https://docs.python.org/2/library/os.html,或者在交互模式中,用dir(os)
看一看。
>>> import os #这个动作很重要,不能缺少 >>> dir(os) ['EX_CANTCREAT', 'EX_CONFIG', 'EX_DATAERR', 'EX_IOERR', 'EX_NOHOST', 'EX_NOINPUT', 'EX_NOPERM', 'EX_NOUSER', 'EX_OK', 'EX_OSERR', 'EX_OSFILE', 'EX_PROTOCOL', 'EX_SOFTWARE', 'EX_TEMPFAIL', 'EX_UNAVAILABLE', 'EX_USAGE', 'F_OK', 'NGROUPS_MAX', 'O_APPEND', 'O_ASYNC', 'O_CREAT', 'O_DIRECT', 'O_DIRECTORY', 'O_DSYNC', 'O_EXCL', 'O_LARGEFILE', 'O_NDELAY', 'O_NOATIME', 'O_NOCTTY', 'O_NOFOLLOW', 'O_NONBLOCK', 'O_RDONLY', 'O_RDWR', 'O_RSYNC', 'O_SYNC', 'O_TRUNC', 'O_WRONLY', 'P_NOWAIT', 'P_NOWAITO', 'P_WAIT', 'R_OK', 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'UserDict', 'WCONTINUED', 'WCOREDUMP', 'WEXITSTATUS', 'WIFCONTINUED', 'WIFEXITED', 'WIFSIGNALED', 'WIFSTOPPED', 'WNOHANG', 'WSTOPSIG', 'WTERMSIG', 'WUNTRACED', 'W_OK', 'X_OK', '_Environ', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_copy_reg', '_execvpe', '_exists', '_exit', '_get_exports_list', '_make_stat_result', '_make_statvfs_result', '_pickle_stat_result', '_pickle_statvfs_result', '_spawnvef', 'abort', 'access', 'altsep', 'chdir', 'chmod', 'chown', 'chroot', 'close', 'closerange', 'confstr', 'confstr_names', 'ctermid', 'curdir', 'defpath', 'devnull', 'dup', 'dup2', 'environ', 'errno', 'error', 'execl', 'execle', 'execlp', 'execlpe', 'execv', 'execve', 'execvp', 'execvpe', 'extsep', 'fchdir', 'fchmod', 'fchown', 'fdatasync', 'fdopen', 'fork', 'forkpty', 'fpathconf', 'fstat', 'fstatvfs', 'fsync', 'ftruncate', 'getcwd', 'getcwdu', 'getegid', 'getenv', 'geteuid', 'getgid', 'getgroups', 'getloadavg', 'getlogin', 'getpgid', 'getpgrp', 'getpid', 'getppid', 'getresgid', 'getresuid', 'getsid', 'getuid', 'initgroups', 'isatty', 'kill', 'killpg', 'lchown', 'linesep', 'link', 'listdir', 'lseek', 'lstat', 'major', 'makedev', 'makedirs', 'minor', 'mkdir', 'mkfifo', 'mknod', 'name', 'nice', 'open', 'openpty', 'pardir', 'path', 'pathconf', 'pathconf_names', 'pathsep', 'pipe', 'popen', 'popen2', 'popen3', 'popen4', 'putenv', 'read', 'readlink', 'remove', 'removedirs', 'rename', 'renames', 'rmdir', 'sep', 'setegid', 'seteuid', 'setgid', 'setgroups', 'setpgid', 'setpgrp', 'setregid', 'setresgid', 'setresuid', 'setreuid', 'setsid', 'setuid', 'spawnl', 'spawnle', 'spawnlp', 'spawnlpe', 'spawnv', 'spawnve', 'spawnvp', 'spawnvpe', 'stat', 'stat_float_times', 'stat_result', 'statvfs', 'statvfs_result', 'strerror', 'symlink', 'sys', 'sysconf', 'sysconf_names', 'system', 'tcgetpgrp', 'tcsetpgrp', 'tempnam', 'times', 'tmpfile', 'tmpnam', 'ttyname', 'umask', 'uname', 'unlink', 'unsetenv', 'urandom', 'utime', 'wait', 'wait3', 'wait4', 'waitpid', 'walk', 'write']
在这么多的东西中,本讲只关注os.path
,因为它和前面已经讲过的文件操作进行配合,就能够随心所欲操作各个地方的文件了
关于os.path
的属性也不少,依然可以用dir(os.path)
查看:
>>> dir(os.path) ['__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_joinrealpath', '_unicode', '_varprog', 'abspath', 'altsep', 'basename', 'commonprefix', 'curdir', 'defpath', 'devnull', 'dirname', 'exists', 'expanduser', 'expandvars', 'extsep', 'genericpath', 'getatime', 'getctime', 'getmtime', 'getsize', 'isabs', 'isdir', 'isfile', 'islink', 'ismount', 'join', 'lexists', 'normcase', 'normpath', 'os', 'pardir', 'pathsep', 'realpath', 'relpath', 'samefile', 'sameopenfile', 'samestat', 'sep', 'split', 'splitdrive', 'splitext', 'stat', 'supports_unicode_filenames', 'sys', 'walk', 'warnings']
这么多属性,可以用help()
逐个查看有关信息,并了解其使用方法。下面列出常见的几个使用方法。就像这样:
>>> help(os.path.split) split(p) Split a pathname. Returns tuple "(head, tail)" where "tail" is everything after the final slash. Either part may be empty.
以下将一些典型举例说明:
特别说明,下面的所有操作,均是进入到如下的目录中进行的。
$ pwd /home/hiekay/pythonWorkSpace $ python >>>
文件的绝对路径
>>> import os.path >>> os.path.abspath("1.py") '/home/hiekay/pythonWorkSpace/1.py'
文件 1.py 是真实存在上述路径中的,得到了该文件的绝对路径。但是,如果随便提供一个不在这个目录中的文件,又如何?
>>> os.path.isfile("1.py") True >>> os.path.isfile("2.py") False >>> os.path.abspath("2.py") '/home/hiekay/pythonWorkSpace/2.py'
os.path.isfile(path)
,可以判断path中是否是文件,其实是判断在该路径中,是否存在那个文件,如果存在则返回True,否则False。上面的操作发现 2222.py 这个文件在当前目录下是不存在的,但是,用os.path.abspaht("2222.py")
能够返回一个绝对路径并带有这个不存在的文件的文件名。这里不妨理解为,如果要建立这个文件,它即将被放在那个位置。
分开目录和文件名
>>> pn = os.path.abspath("1.py") >>> pn '/home/hiekay/pythonWorkSpace/1.py' >>> os.path.split(pn) ('/home/hiekay/pythonWorkSpace', '1.py') >>> path, filename = os.path.split(pn)[0], os.path.split(pn)[1] >>> path '/home/hiekay/pythonWorkSpace' >>> filename '1.py'
os.paht.split()
,参数是目录加文件名,就可以将路径和文件名分开。其实,我看这个功能不是很智能,你看这样
>>> os.path.split("/home/hiekay") ('/home', 'hiekay') >>> os.path.split("/home/hiekay/") ('/home/hiekay', '')
它就是将最后一组认为是文件名了,即最后一个/
后面的就是文件名,所以第二个实验中,文件名是空了。是不是有点傻呢?
同样,参数中的文件或者目录,不一定是你的电脑中真实存在的,请看:
>>> os.path.split("/foo/python/hiekay/git.git") ('/foo/python/hiekay', 'git.git')
只要符合目录书写结构,就可以分解了。
有另外两个属性,是os.path.split()
的分别执行,即可以分别获得路径和文件名,这样让操作更简单了。
>>> os.path.dirname("/foo/python/hiekay/git.git") '/foo/python/hiekay' >>> os.path.basename("foo/python/hiekay/git.git") 'git.git'
判断
前面稍微提到了os.path.isfile()
可以用来判断一个文件是否存在,那么判断目录路径是否存在,可否?可:
>>> os.path.exists("/foo/python/hiekay") False >>> os.path.exists("/home/hiekay/Documents") True
判断相关的属性还有:
-
os.path.isabs(path)
:判断path是否为绝对路径 -
os.paht.isdir(path)
:判断path是否为存在的目录
组合路径
将两个或多个对象组合起来,是常见的事情,那么如何将多个路径组合呢?如下:
>>> os.path.join("/home/python","/BasicsPython","2.md") '/BasicsPython/2.md'
特别提醒,这个属性的返回值中,将第一个绝对路径忽略。
>>> os.path.join("/","/home/hiekay","learnpython.md") '/home/hiekay/learnpython.md'
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
2018再见|2019你好
前言 只有光头才能变强 Hello,首先祝大家元旦快乐!(文末有个人送书福利) 2018年自己成长了很多,这篇文章来回顾一下2018我做了什么事,展望2019年~ 背景:2019应届生,方向:Java 上半年(一月份到五月份) 在2018年年初,我就给自己定下一个目标:“在今年暑假可以找到一份实习,如果实习单位就不错就一直做下去,我不希望爸妈担心我工作的事“。对的,是一个非常简单明确的目标。 所以我在年初的时候就"一早早"开始准备面试题了。当时是把自己写过的笔记复习一遍,再根据不同的技术类型来搜搜相关的面试题巩固一下,并整理成文章记录下来。 比如Servlet技术我就整理过Servlet相关的面试题,JSP技术就整理过JSP相关的面试题,JDBC技术就整理过JDBC的面试题。反正我觉得蛮重要的知识点,都整理过一遍。 在二月份,我开始在全网上更新我的文章(也包括了微信公众号),期间也认识了不少的开发者,一起学习交流和进步(这是一件有满足感的事) 在三月份,有不少的人告诉我已经有企业在招实习生了,让我去试试。出于当时的不自信,觉得自己还没复习好,肯定是没机会的了,所以简历都没写。 后话:其...
- 下一篇
python 网站的结构
用python怎么做一个网站。 维基百科对网站有如下描述: 网站(英文:Website)是指在互联网上,根据一定的规则,使用HTML等工具制作的用于展示特定内容的相关网页的集合。简单地说,网站是一种通信工具,就像布告栏一样,人们可以通过网站来发布自己想要公开的信息,或者利用网站来提供相关的网络服务。人们可以通过网页浏览器来访问网站,获取自己需要的信息或者享受网络服务。世界上第一个网站由蒂姆·伯纳斯-李创建于1991年8月6日。 网站组成 网站是由两大部分组成,一是服务器,二是程序。 如果要增加交互功能,怎么办?那就要 这样,网站就多了一部分,行话常说是“后端”,直接展示给看客的叫做“前端”。“后端”所做的事情就是处理“前端”用户提交的信息,然后给用户一个反馈。这样就交互起来了。 此外,为了将网站上的数据保存起来,通常会用到一个叫做“数据库”的东西(这个不是必须的,有的网站就没有数据库,有的网站用别的方式存储数据,比如文本等),数据库主要是存储某些数据,让网站的后端和前端从这里将某些数据读出来,显示给看官,或者将看官提交的某些数据存进去,以便以后使用。 数据库是计算机行业中的一个专业门来...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果