【python】os模块的操作介绍

os,语义为操作系统,模块提供了访问多个操作系统服务的功能,可以处理文件和目录这些我们日常手动需要做的操作。os和它的子模块os.path还包括一些用于检查、构造、删除目录和文件的函数,以及一些处理路径的函数(os.path.jion()\os.path.split()可以在大部分情况下忽略os.pathsep)。

os模块的常用功能:

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

In [1]: import os
In [2]: os.name
Out[2]: 'nt'

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

In [3]: os.getcwd()
Out[3]: 'C:\\Users\\BruceWong\\Documents' #使用Ipython

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

In [4]: os.listdir() #如果没有指定路径,则是当前python脚本路径
Out[4]:
['desktop.ini',
 'dump.raw.txt',
 'hp.system.package.metadata',
 'My eBooks',
 'My Music',
 'My Pictures',
 'My Videos',
 'Navicat',
 'Notes',
 'Python Scripts',
 'Tencent Files',
 'YouCam',
 '自定义 Office 模板']
 In [6]: os.listdir('C:/Users/BruceWong/Documents/Notes')
Out[6]:
['blank.jtp',
 'desktop.ini',
 'Dotted_Line.jtp',
 'Genko_1.jtp',
 'Genko_2.jtp',
 'Graph.jtp',
 'Memo.jtp',
 'Month_Calendar.jtp',
 'Music.jtp',
 'Seyes.jtp',
 'Shorthand.jtp',
 'To_Do_List.jtp']

4 os.remove(‘filename’) #用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。强调必须是文件,而不是文件夹或者目录

In [15]: os.listdir('C:/Users/BruceWong/Documents/Notes')
Out[15]:
['blank.jtp',
 'desktop.ini',
 'Dotted_Line.jtp',
 'Genko_1.jtp',
 'Genko_2.jtp',
 'Graph.jtp',
 'Memo.jtp',
 'Month_Calendar.jtp',
 'Music.jtp',
 'Seyes.jtp',
 'Shorthand.jtp',
 'To_Do_List.jtp']

In [16]: os.remove('C:/Users/BruceWong/Documents/Notes/Dotted_Line.jtp')

In [17]: os.listdir('C:/Users/BruceWong/Documents/Notes')
Out[17]:
['blank.jtp',
 'desktop.ini',
 'Genko_1.jtp',
 'Genko_2.jtp',
 'Graph.jtp',
 'Memo.jtp',
 'Month_Calendar.jtp',
 'Music.jtp',
 'Seyes.jtp',
 'Shorthand.jtp',
 'To_Do_List.jtp']

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

#自定义新生产多层递归目录,生成2层文件夹
 os.makedirs('jone/path')

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

#用于删除第二级文件夹path
os.rmdir('jone/path')

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

#将原生成的path文件夹名更为pathth
 os.rename('jone/path','jone/pathth')

8 os.system() #运行shell命令,注意:这里是打开一个新的shell,运行命令,当命令结束后,关闭shell。用于打开文件或者程序,不能打开文件夹

#用于打开文件或者程序
In [36]: os.system('dump.raw.txt')
Out[36]: 0
#注意读入程序时,需要将程序路径用引号再包括起来
In [39]: os.system(r'"C:\Program Files (x86)\Tencent\WeChat\WeChat.exe"')
Out[39]: 0

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

In [41]: os.sep
Out[41]: '\\'

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

In [42]: os.linesep
Out[42]: '\r\n'

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

In [43]: os.environ
Out[43]: environ({'USERDOMAIN': 'BRUCE', 'GEODA_GDAL_DATA': 'C:\\Program Files (x86)\\GeoDa Software\\data', 'FPS_BROWSER_APP_PROFILE_STRING': 'Internet Explorer', 'WINDIR': 'C:\\WINDOWS', 'PSMODULEPATH': 'C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules\\', 'PROGRAMFILES': 'C:\\Program Files', 'COMPUTERNAME': 'BRUCE', 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files', 'LNKEVN': 'C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe', 'ALLUSERSPROFILE': 'C:\\ProgramData', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files', 'PROCESSOR_REVISION': '4e03', 'TEMP': 'C:\\Users\\BRUCEW~1\\AppData\\Local\\Temp', 'USERDOMAIN_ROAMINGPROFILE': 'BRUCE', 'HOMEPATH': '\\Users\\BruceWong', 'PROGRAMDATA': 'C:\\ProgramData', 'GEODA_OGR_DRIVER_PATH': 'C:\\Program Files (x86)\\GeoDa Software', 'FPS_BROWSER_USER_PROFILE_STRING': 'Default', 'USERNAME': 'BruceWong', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 78 Stepping 3, GenuineIntel', 'ONLINESERVICES': 'Online Services', 'PROGRAMW6432': 'C:\\Program Files', 'PATH': 'C:\\Anaconda3\\Library\\bin;C:\\Anaconda3;C:\\Anaconda3\\Scripts;C:\\Anaconda3\\Library\\bin;C:\\Anaconda3\\Library\\bin;C:\\Program Files\\Broadcom\\Broadcom 802.11 Network Adapter;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 (x86)\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\DAL;C:\\Program Files (x86)\\Intel\\Intel(R) Management Engine Components\\IPT;C:\\Program Files\\Intel\\Intel(R) Management Engine Components\\IPT;C:\\Program Files\\Intel\\IntelSGXPSW\\bin\\x64\\Release\\;C:\\Program Files\\Intel\\IntelSGXPSW\\bin\\win32\\Release\\;C:\\Program Files\\Hewlett-Packard\\SimplePass\\;C:\\Program Files (x86)\\MATLAB\\R2011b\\runtime\\win32;C:\\Program Files (x86)\\MATLAB\\R2011b\\bin;C:\\program files (x86)\\skype\\Phone\\;C:\\Program Files\\mingw-w64\\x86_64-7.2.0-posix-seh-rt_v5-rev0\\mingw64\\bin;C:\\Program Files\\Git\\cmd;C:\\Users\\BruceWong\\AppData\\Local\\Programs\\Python\\Python35-32\\Scripts\\;C:\\Users\\BruceWong\\AppData\\Local\\Programs\\Python\\Python35-32\\;C:\\Anaconda3;C:\\Anaconda3\\Scripts;C:\\Anaconda3\\Library\\bin;C:\\anaconda;C:\\anaconda\\Scripts;C:\\anaconda\\Library\\bin;C:\\Wind\\Wind.NET.Client\\WindNET\\bin\\;C:\\Users\\BruceWong\\AppData\\Local\\Microsoft\\WindowsApps', 'NUMBER_OF_PROCESSORS': '4', 'OS': 'Windows_NT', 'PLATFORM': 'MCD', 'HOMEDRIVE': 'C:', 'LOCALAPPDATA': 'C:\\Users\\BruceWong\\AppData\\Local', 'SYSTEMDRIVE': 'C:', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'PLATFORMCODE': 'KV', 'PUBLIC': 'C:\\Users\\Public', 'COMSPEC': 'C:\\WINDOWS\\system32\\cmd.exe', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'SESSIONNAME': 'Console', 'APPDATA': 'C:\\Users\\BruceWong\\AppData\\Roaming', 'LOGONSERVER': '\\\\BRUCE', 'PROCESSOR_LEVEL': '6', 'TMP': 'C:\\Users\\BRUCEW~1\\AppData\\Local\\Temp', 'REGIONCODE': 'APJ', 'PROGRAMFILES(X86)': 'C:\\Program Files (x86)', 'SYSTEMROOT': 'C:\\WINDOWS', 'USERPROFILE': 'C:\\Users\\BruceWong'})

12 os.path.abspath(path) #对文件夹操作,显示当前绝对路径

In [44]: os.path.abspath('jone')
#'\\'为当前的分隔符
Out[44]: 'C:\\Users\\BruceWong\\Documents\\jone'

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

In [45]: os.path.dirname(os.path.abspath('jone'))
Out[45]: 'C:\\Users\\BruceWong\\Documents'

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

In [46]: os.path.basename(os.path.dirname(os.path.abspath('jone')))
Out[46]: 'Documents'

15 os.path.isfile(path) #如果path是一个文件(file),则返回True,如果是文件夹或者目录,则返回False

In [49]: os.path.isfile('jone/path')
Out[49]: False
In [50]: os.path.isfile('dump.raw.txt')
Out[50]: True

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

In [51]: os.path.isdir('jone/path')
Out[51]: True

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

In [53]: os.stat('dump.raw.txt')
Out[53]: os.stat_result(st_mode=33206, st_ino=3096224746191003, st_dev=2249160272, st_nlink=1, st_uid=0, st_gid=0, st_size=316, st_atime=1515209477, st_mtime=1514691906, st_ctime=1515209477)

In [54]: os.stat('jone')
Out[54]: os.stat_result(st_mode=16895, st_ino=18295873488551588, st_dev=2249160272, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1515210818, st_mtime=1515210818, st_ctime=1515208502)

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

In [55]: os.path.split('jone')
Out[55]: ('', 'jone')

In [56]: os.path.split('dump.raw.txt')
Out[56]: ('', 'dump.raw.txt')

19 os.path.join(path,name) #连接目录与文件名或目录 结果为path/name,功能仅仅是连接的作用,而不能生成。将多个路径组合后返回,第一个绝对路径之前的参数将被忽略

In [57]: os.path.join('jone','dump.raw.txt')
Out[57]: 'jone\\dump.raw.txt'
#上述生成的路径,如果不写入信息,则最终不会有该文件夹
#不过生成的路径可以结合os.mkdir()函数生成进一步的路径。
In [69]: path = os.path.join('jone\\path','dump.raw.txt')

In [70]: path
Out[70]: 'jone\\path\\dump.raw.txt'
In [71]: os.mkdir(path)
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值