python中的os模块
os模塊
os模塊的作用:
os,語(yǔ)義為操作系統(tǒng),所以肯定就是操作系統(tǒng)相關(guān)的功能了,可以處理文件和目錄這些我們?nèi)粘J謩?dòng)需要做的操作,就比如說:顯示當(dāng)前目錄下所有文件/刪除某個(gè)文件/獲取文件大小……
另外,os模塊不受平臺(tái)限制,也就是說:當(dāng)我們要在linux中顯示當(dāng)前路徑時(shí)就要用到pwd命令,而Windows中cmd命令行下就要用到這個(gè),額...我擦,我還真不知道,(甭管怎么著,肯定不是pwd),這時(shí)候我們使用python中os模塊的os.path.abspath(name)功能,甭管是linux或者Windows都可以獲取當(dāng)前的絕對(duì)路徑。
os模塊的常用功能:
1? os.name????? #顯示當(dāng)前使用的平臺(tái)
>>> os.name 'nt' #這表示W(wǎng)indows >>> os.name 'posix' #這表示Linux View Code2? os.getcwd()????? #顯示當(dāng)前python腳本工作路徑
>>> os.getcwd() 'C:\\Users\\Capital-D\\PycharmProjects\\untitled' #使用pycharm>>> os.getcwd() '/root' #Linux平臺(tái)在/root目錄直接使用python3命令 View Code3? os.listdir('dirname')??????? #返回指定目錄下的所有文件和目錄名
#相對(duì)于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'] View Code4? os.remove('filename') ????? #刪除一個(gè)文件
[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已被刪 View Code5? os.makedirs('dirname/dirname') ??? #可生成多層遞規(guī)目錄
[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 ~]# View Code6? os.rmdir('dirname')???? #刪除單級(jí)目錄
[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 ~]# View Code7? os.rename("oldname","newname") ?? #重命名文件
>>> os.getcwd() '/root/hahaha' >>> os.listdir() ['test'] >>> os.rename('test','test_new') >>> os.listdir() ['test_new'] View Code8? os.system()??? #運(yùn)行shell命令,注意:這里是打開一個(gè)新的shell,運(yùn)行命令,當(dāng)命令結(jié)束后,關(guān)閉shell
9? os.sep??? #顯示當(dāng)前平臺(tái)下路徑分隔符
>>> os.sep '/' #linux>>> os.sep '\\' #windows View Code10? os.linesep??? #給出當(dāng)前平臺(tái)使用的行終止符
>>> os.linesep '\n' #linux>>> os.linesep '\r\n' #windows View Code11? os.environ??? #獲取系統(tǒng)環(huán)境變量
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': '4', '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': '1', 'LOCALAPPDATA': 'C:\\Users\\Capital-D\\AppData\\Local', 'PYTHONUNBUFFERED': '1', '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': '1', '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': '6'}) View Code12? os.path.abspath(path)??? #顯示當(dāng)前絕對(duì)路徑
>>> os.path.abspath('test') 'C:\\Users\\Capital-D\\PycharmProjects\\untitled\\test' View Code13? 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' View Code14? os.path.basename(path)??? #返回該路徑的最后一個(gè)目錄或者文件,如果path以/或\結(jié)尾,那么就會(huì)返回空值。
>>> os.path.dirname(os.path.abspath('test')) 'C:\\Users\\Capital-D\\PycharmProjects\\untitled' >>> os.path.basename(os.path.dirname(os.path.abspath('test'))) 'untitled' View Code15? os.path.isfile(path)???? #如果path是一個(gè)文件,則返回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 View Code16? os.path.isdir(path)??? #如果path是一個(gè)目錄,則返回True
>>> os.path.isdir('hahaha') True View Code17? 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) View Code18? os.path.split(path)? #將path分割成路徑名和文件名。(事實(shí)上,如果你完全使用目錄,它也會(huì)將最后一個(gè)目錄作為文件名而分離,同時(shí)它不會(huì)判斷文件或目錄是否存在)
19? os.path.join(path,name) ? #連接目錄與文件名或目錄 結(jié)果為path/name
>>> os.path.join('/root/haha','test') '/root/haha/test' View Code?
轉(zhuǎn)載于:https://www.cnblogs.com/MnCu8261/p/5483657.html
總結(jié)
以上是生活随笔為你收集整理的python中的os模块的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: power design教程
- 下一篇: Layout布局(补充)