os模块

os模块的作用:

  os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/删除某个文件/获取文件大小……

  另外,os模块不受平台限制,也就是说:当我们要在linux中显示当前路径时就要用到pwd命令,而Windows中cmd命令行下就要用到这个,额...我擦,我还真不知道,(甭管怎么着,肯定不是pwd),这时候我们使用python中os模块的os.path.abspath(name)功能,甭管是linux或者Windows都可以获取当前的绝对路径。

os模块的常用功能:

1  os.name      #显示当前使用的平台

>>> os.name
'nt' #这表示Windows
>>> os.name
'posix' #这表示Linux

2  os.getcwd()      #显示当前python脚本工作路径

>>> os.getcwd()
'C:\\Users\\Capital-D\\PycharmProjects\\untitled' #使用pycharm >>> os.getcwd()
'/root' #Linux平台在/root目录直接使用python3命令

3  os.listdir('dirname')        #返回指定目录下的所有文件和目录名

#相对于os.getcwd路径下的文件
>>> os.listdir()
['.idea', 'test'] >>> os.listdir()
['.bash_logout', 'Python-3.4.4', '.mysql_history', '.tcshrc', 'Python-3.4.4.tar.xz', '.bash_profile', '.lesshst', 'install.log.syslog', '.cshrc', '04.sql', 'anaconda-ks.cfg', 'test', '.viminfo', 'phpMyAdmin-4.4.15-all-languages.tar.bz2', '1test', '.bashrc', 'binlog.sql', 'back.sql', 'install.log', 'binlog4.sql', '.bash_history', 'backup.sql', 'text.py', '.rnd', 'test1']

4  os.remove('filename')       #删除一个文件

[root@slyoyo ~]# touch hahaha
[root@slyoyo ~]# ls
04.sql back.sql binlog.sql install.log.syslog Python-3.4.4.tar.xz text.py
1test backup.sql hahaha phpMyAdmin-4.4.15-all-languages.tar.bz2 test
anaconda-ks.cfg binlog4.sql install.log Python-3.4.4 test1
#hahaha(粉色字体)存在
[root@slyoyo ~]# python3
Python 3.4.4 (default, Apr 5 2016, 04:23:19)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.remove('hahaha')
>>> exit()
[root@slyoyo ~]# ls
04.sql anaconda-ks.cfg backup.sql binlog.sql install.log.syslog Python-3.4.4 test text.py
1test back.sql binlog4.sql install.log phpMyAdmin-4.4.15-all-languages.tar.bz2 Python-3.4.4.tar.xz test1
#hahaha已被删

5  os.makedirs('dirname/dirname')     #可生成多层递规目录

[root@slyoyo ~]# ls
04.sql anaconda-ks.cfg backup.sql binlog.sql install.log.syslog Python-3.4.4 test text.py
1test back.sql binlog4.sql install.log phpMyAdmin-4.4.15-all-languages.tar.bz2 Python-3.4.4.tar.xz test1
[root@slyoyo ~]# python3
Python 3.4.4 (default, Apr 5 2016, 04:23:19)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.makedirs('hahaha/linghuchong')
>>> exit()
[root@slyoyo ~]# ls
04.sql back.sql binlog.sql install.log.syslog Python-3.4.4.tar.xz text.py
1test backup.sql hahaha phpMyAdmin-4.4.15-all-languages.tar.bz2 test
anaconda-ks.cfg binlog4.sql install.log Python-3.4.4 test1
[root@slyoyo ~]# ls hahaha/
linghuchong
[root@slyoyo ~]# ls hahaha/linghuchong/
[root@slyoyo ~]#

6  os.rmdir('dirname')     #删除单级目录

[root@slyoyo ~]# ls
04.sql back.sql binlog.sql install.log.syslog Python-3.4.4.tar.xz text.py
1test backup.sql hahaha phpMyAdmin-4.4.15-all-languages.tar.bz2 test
anaconda-ks.cfg binlog4.sql install.log Python-3.4.4 test1
[root@slyoyo ~]# ls hahaha/
linghuchong
[root@slyoyo ~]# ls hahaha/linghuchong/
[root@slyoyo ~]# python3
Python 3.4.4 (default, Apr 5 2016, 04:23:19)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.rmdir('hahaha/linghuchong')
>>> exit()
[root@slyoyo ~]# ls hahaha/
[root@slyoyo ~]#

7  os.rename("oldname","newname")    #重命名文件

>>> os.getcwd()
'/root/hahaha'
>>> os.listdir()
['test']
>>> os.rename('test','test_new')
>>> os.listdir()
['test_new']

8  os.system()    #运行shell命令,注意:这里是打开一个新的shell,运行命令,当命令结束后,关闭shell

>>> os.system('pwd')
/root/hahaha
0

9  os.sep    #显示当前平台下路径分隔符

>>> os.sep
'/' #linux >>> os.sep
'\\' #windows

10  os.linesep    #给出当前平台使用的行终止符

>>> os.linesep
'\n' #linux >>> os.linesep
'\r\n' #windows

11  os.environ    #获取系统环境变量

os.environ
environ({'USERPROFILE': 'C:\\Users\\Capital-D', 'PROCESSOR_ARCHITECTURE': 'x86', 'SESSIONNAME': 'Console', 'UGII_BASE_DIR': 'D:\\Program Files (x86)\\Siemens\\NX 8.0', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files', 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files', 'MOZ_PLUGIN_PATH': 'C:\\Program Files (x86)\\Foxit Software\\Foxit Reader\\plugins\\', 'ALLUSERSPROFILE': 'C:\\ProgramData', 'PYTHONIOENCODING': 'UTF-8', 'NUMBER_OF_PROCESSORS': '', 'APPDATA': 'C:\\Users\\Capital-D\\AppData\\Roaming', 'TERM': 'emacs', 'TEMP': 'C:\\Users\\CAPITA~1\\AppData\\Local\\Temp', 'PROGRAMDATA': 'C:\\ProgramData', 'COMSPEC': 'C:\\windows\\system32\\cmd.exe', 'WINDIR': 'C:\\windows', 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 58 Stepping 9, GenuineIntel', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY', 'PATH': 'C:\\ProgramData\\Oracle\\Java\\javapath;C:\\Program Files (x86)\\Common Files\\NetSarang;C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;C:\\Program Files (x86)\\Intel\\iCLS Client\\;C:\\Program Files\\Intel\\iCLS Client\\;C:\\windows\\system32;C:\\windows;C:\\windows\\System32\\Wbem;C:\\windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\IPT;C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\IPT', 'UGII_ROOT_DIR': 'D:\\Program Files (x86)\\Siemens\\NX 8.0\\UGII\\', 'COMPUTERNAME': 'IDEA-PC', 'USERDOMAIN': 'idea-PC', 'TMP': 'C:\\Users\\CAPITA~1\\AppData\\Local\\Temp', 'SYSTEMROOT': 'C:\\windows', 'PROCESSOR_REVISION': '3a09', 'FP_NO_HOST_CHECK': 'NO', 'PROGRAMFILES': 'C:\\Program Files (x86)', 'PYTHONDONTWRITEBYTECODE': '', 'LOCALAPPDATA': 'C:\\Users\\Capital-D\\AppData\\Local', 'PYTHONUNBUFFERED': '', 'LOGONSERVER': '\\\\IDEA-PC', 'UGII_LANG': 'simpl_chinese', 'SYSTEMDRIVE': 'C:', 'PUBLIC': 'C:\\Users\\Public', 'HOMEPATH': '\\Users\\Capital-D', 'PYTHONPATH': 'C:\\Program Files (x86)\\JetBrains\\PyCharm 5.0.2\\helpers\\pydev', 'USERNAME': 'Capital-D', 'UGS_LICENSE_SERVER': '28000@idea-pc', 'USERDOMAIN_ROAMINGPROFILE': 'idea-PC', 'PYCHARM_HOSTED': '', 'OS': 'Windows_NT', 'PROCESSOR_ARCHITEW6432': 'AMD64', 'PROGRAMFILES(X86)': 'C:\\Program Files (x86)', 'PROGRAMW6432': 'C:\\Program Files', 'PSMODULEPATH': 'C:\\windows\\system32\\WindowsPowerShell\\v1.0\\Modules\\', 'COMMONPROGRAMFILES': 'C:\\Program Files (x86)\\Common Files', 'IPYTHONENABLE': 'True', 'HOMEDRIVE': 'C:', 'CONFIGSETROOT': 'C:\\windows\\ConfigSetRoot', 'PROCESSOR_LEVEL': ''})

12  os.path.abspath(path)    #显示当前绝对路径

>>> os.path.abspath('test')
'C:\\Users\\Capital-D\\PycharmProjects\\untitled\\test'

13  os.path.dirname(path)    #返回该路径的父目录

>>> os.path.abspath('test')
'C:\\Users\\Capital-D\\PycharmProjects\\untitled\\test'
>>> os.path.dirname(os.path.abspath('test'))
'C:\\Users\\Capital-D\\PycharmProjects\\untitled'

14  os.path.basename(path)    #返回该路径的最后一个目录或者文件,如果path以/或\结尾,那么就会返回空值。

>>> os.path.dirname(os.path.abspath('test'))
'C:\\Users\\Capital-D\\PycharmProjects\\untitled'
>>> os.path.basename(os.path.dirname(os.path.abspath('test')))
'untitled'

15  os.path.isfile(path)     #如果path是一个文件,则返回True

[root@slyoyo ~]# ls
04.sql back.sql binlog.sql install.log.syslog Python-3.4.4.tar.xz text.py
1test backup.sql hahaha phpMyAdmin-4.4.15-all-languages.tar.bz2 test
anaconda-ks.cfg binlog4.sql install.log Python-3.4.4 test1
[root@slyoyo ~]# python3
Python 3.4.4 (default, Apr 5 2016, 04:23:19)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.path.isfile('test')
True

16  os.path.isdir(path)    #如果path是一个目录,则返回True

>>> os.path.isdir('hahaha')
True

17  os.stat()    #获取文件或者目录信息

>>> os.stat('test')
os.stat_result(st_mode=33188, st_ino=137149, st_dev=2050, st_nlink=1, st_uid=0, st_gid=0, st_size=85, st_atime=1462373193, st_mtime=1462373186, st_ctime=1462373186)

18  os.path.split(path)  #将path分割成路径名和文件名。(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)

>>> os.path.split('/root/test')
('/root', 'test')

19  os.path.join(path,name)   #连接目录与文件名或目录 结果为path/name

>>> os.path.join('/root/haha','test')
'/root/haha/test'

python中的os模块的更多相关文章

  1. 善于利用python中的os模块

    作为一个程序猿,平时善于利用python中的os模块进行路径等操作,会省去很多麻烦,下面总结一下我平时经常用到的方法: import os os.getcwd() # 获取当前文件所在的目录 os.p ...

  2. Python中使用os模块执行远程命令

    1. 使用os模块远程执行命令 服务端代码 1 import socket 2 import os 3 4 sh_server = socket.socket() #创建一个socket对象 5 sh ...

  3. python 中的os模块

    python os模块   Python os 模块提供了一个统一的操作系统接口函数 一.对于系统的操作 1.os.name 当前使用平台 其中 ‘nt’ 是 windows,’posix’ 是lin ...

  4. 二十八、python中的os模块

    A.os模块:系统相关的(相对比较常用的有:os.stat('path/filename'),os.path.split(path),os.path.dirname(path),os.path.bas ...

  5. python中的os模块几个常用的方法

    os.getcwd() 得到当前工作目录,即当前python脚本工作的目录路径 os.remove(file):删除一个文件 os.mkdir(name):创建目录 os.path.exists(na ...

  6. Python 中的 os 模块常见方法?

    os.remove() 删除文件 os.rename() 重命名文件 os.walk() 生成目录树下的所有文件名 os.chdir() 改变目录 os.mkdir/makedirs 创建目录/多层目 ...

  7. Python基础入门-os模块

    今天我们来介绍一下os模块中常用的一些方法,当然python中的os模块中提供的使用方法有很多,但是这里面小编会列举出来一些和实际工作中应用的相关的方法,而且会有一些实际的例子方便大家对os模块理解. ...

  8. Python中的logging模块

    http://python.jobbole.com/86887/ 最近修改了项目里的logging相关功能,用到了python标准库里的logging模块,在此做一些记录.主要是从官方文档和stack ...

  9. Python中的re模块--正则表达式

    Python中的re模块--正则表达式 使用match从字符串开头匹配 以匹配国内手机号为例,通常手机号为11位,以1开头.大概是这样13509094747,(这个号码是我随便写的,请不要拨打),我们 ...

随机推荐

  1. BUAAMOOC项目M2 postmortem

    设想和目标 1.我们的软件要解决什么问题?是否定义的很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件是基于北航MOOC网站做的Android手机客户端,用于便捷的在学校里通过手机做到随时随地 ...

  2. Linux内核分析 读书笔记 (第七章)

    第七章 链接 1.链接是将各种代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(或被拷贝)到存储器并执行. 2.链接可以执行于编译时,也就是在源代码被翻译成机器代码时:也可以执行于 ...

  3. 《Linux内核设计与实现》第八周读书笔记——第四章 进程调度

    <Linux内核设计与实现>第八周读书笔记——第四章 进程调度 第4章 进程调度35 调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间,进程调度程序可看做在可运行态进程之间分配 ...

  4. 转【c语言】两个堆栈组成一个队列

    假设有两个堆栈,分别是s1,s2,现在有数列“1,2,3,4,5”,要让这个数列实现先进先出的功能,也就是用两个堆栈组成一个队列,如何实现? 分析: 先将数列压入栈s1,数列在栈中由顶到底的元素为“5 ...

  5. 对TCP重传的进一步认识

    http://blog.sina.com.cn/s/blog_4d276ac901011ee7.html ——TCM项目所得 一.看图说话 1.基于套接字的TCP服务器/客户端程序流程 2.TCP三次 ...

  6. Lucene源码

    看Lucene源码必须知道的基本概念 终于有时间总结点Lucene,虽然是大周末的,已经感觉是对自己的奖励,毕竟只是喜欢,现在的工作中用不到的.自己看源码比较快,看英文原著的技术书也很快.都和语言有很 ...

  7. Neo4j学习案例【转】

    转自 打怪的蚂蚁 CSDN: https://blog.csdn.net/xgjianstart/article/details/77285334 neo4j有社区版本和企业版.社区版本是免费的,只支 ...

  8. MiniDP与HDMI的关系

    高清输出革命先行者:HDMI接口 HDMI高清晰度多媒体接口(英文:High Definition Multimedia Interface,HDMI)是一种数字化视频/音频接口技术,是适合影像传输的 ...

  9. NodeJS中的require和import

    ES6标准发布后,module成为标准,标准的使用是以export指令导出接口,以import引入模块,但是在我们一贯的node模块中,我们采用的是CommonJS规范,使用require引入模块,使 ...

  10. mysql 由decimal 引起的 Warning: Data truncated for column

    今天在使用python 库mysqldb的rawsql的时候遇到一个问题(其实并不是mysqlbean引起的) cls.raw_sql('update {table} set available_am ...