标准库os

os模块

提供对操作系统进行调用的接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir( "dirname" )  改变当前脚本工作目录;相当于shell下cd
os.curdir  返回当前目录: ( '.' )
os.pardir  获取当前目录的父目录字符串名:( '..' )
os.makedirs( 'dirname1/dirname2' )    可生成多层递归目录
os.removedirs( 'dirname1' )    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir( 'dirname' )    生成单级目录;相当于shell中mkdir dirname
os.rmdir( 'dirname' )    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir( 'dirname' )    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove()  删除一个文件
os.rename( "oldname" , "newname" )  重命名文件 / 目录
os.stat( 'path/filename' )  获取文件 / 目录信息
os.sep    输出操作系统特定的路径分隔符,win下为 "\\",Linux下为" / "
os.linesep    输出当前平台使用的行终止符,win下为 "\t\n" ,Linux下为 "\n"
os.pathsep    输出用于分割文件路径的字符串
os.name    输出字符串指示当前使用平台。win - > 'nt' ; Linux - > 'posix'
os.system( "bash command" )  运行shell命令,直接显示
os.environ  获取系统环境变量
os.path.abspath(path)  返回path规范化的绝对路径
os.path.split(path)  将path分割成目录和文件名二元组返回
os.path.dirname(path)  返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path)  返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path)  如果path存在,返回 True ;如果path不存在,返回 False
os.path.isabs(path)  如果path是绝对路径,返回 True
os.path.isfile(path)  如果path是一个存在的文件,返回 True 。否则返回 False
os.path.isdir(path)  如果path是一个存在的目录,则返回 True 。否则返回 False
os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path)  返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间

 

os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir( "dirname" )  改变当前脚本工作目录;相当于shell下cd
os.curdir  返回当前目录: ( '.' )
os.pardir  获取当前目录的父目录字符串名:( '..' )
os.makedirs( 'dirname1/dirname2' )    可生成多层递归目录
os.removedirs( 'dirname1' )    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir( 'dirname' )    生成单级目录;相当于shell中mkdir dirname
os.rmdir( 'dirname' )    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
 1 import os  #导入模块os 
 3 os.getcwd()
 4 Out[4]: 'C:\\Users\\zoe'   #获取当前工作目录,即当前python脚本工作的目录路径
 5 
 6 os.chdir(r'c:\users')   #更改当前脚本工作目录,相当于shell下面的cd命令
7 8 os.getcwd() 9 Out[6]: 'c:\\users' 10 11 os.curdir #返回当前目录:'.' 12 Out[8]: '.' 13 14 os.pardir #返回当前目录的父目录字符串名:'..' 15 Out[9]: '..' 16 17 os.chdir(r'e:') 18 19 os.getcwd() 20 Out[11]: 'E:\\' 21 22 os.makedirs(r'e:\a\b\c\d') #递归地创建目录。在e:\下a文件夹不存在,可以递归地一层一层创建,生成多层递归目录 23 24 os.getcwd() #os.makedirs('dirname')与当前脚本的工作目录无关 25 Out[13]: 'E:\\' 26 27 os.removedirs(r'e:\a\b\c\d') #递归地删除目录。若目录为空,则删除,并递归返回到上一级目录,如若也未空,则删除。以此类推, 28 29 os.mkdir(r'e:\a\b') #生成单级目录,相当于shell中的mkdir dirname ;由于e:\a不存在,则不能直接创建到e:\a\b 30 Traceback (most recent call last): 31 32 File "<ipython-input-16-5e92cf71fe20>", line 1, in <module> 33 os.mkdir(r'e:\a\b') 34 35 FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'e:\\a\\b' 36 37 38 os.mkdir(r'e:\a') #生成单级目录。 39 40 os.mkdir(r'e:\a\b') #生成单级目录 41 42 os.rmdir(r'e:\a\b') #删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname 43 44 os.rmdir(r'e:\a') #删除单级空目录

 

os.listdir('dirname')    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印

 1 os.listdir()  #获取当前目录下的所有文件和子目录,以列表方式打印
 2 Out[21]: 
 3 ['$RECYCLE.BIN',
 4  '2017数据处理备份',
 5  'BaiduNetdiskDownload',
 6  'Config.Msi',
 7  'CRM']
30 
31 os.listdir(r'CRM')
32 Out[22]: 
33 ['APK',
34  'APP',
36  'SSL',
38  '仪表盘',
39  '培训',
40  '学习资料',
41  '操作手册',
43  '需求文档']
46 
47 os.listdir(r'e:\CRM\需求文档')
48 Out[23]: 
49 ['BD',
57  '报表',
58  '抽签派单',
59  '新建用户',
60  '查重库']

 

os.stat('path/filename')  获取文件/目录信息

1 os.stat(r'e:\crm')  #获取文件/目录信息。
2 Out[26]: os.stat_result(st_mode=16895, st_ino=281474976710761, st_dev=779241, st_nlink=1, st_uid=0, st_gid=0, st_size=12288, st_atime=1495068732, st_mtime=1495068732, st_ctime=1468830176)

 

os.sep    输出操作系统特定的路径分隔符,win下为 "\\",Linux下为" / "
os.linesep    输出当前平台使用的行终止符,win下为 "\t\n" ,Linux下为 "\n"
os.pathsep    输出用于分割文件路径的字符串
os.name    输出字符串指示当前使用平台。win - > 'nt' ; Linux - > 'posix'
os.system( "bash command" )  运行shell命令,直接显示
os.environ  获取系统环境变量
 1 os.sep  #输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
 2 Out[27]: '\\'
 3 
 4 os.linesep  #输出当前平台使用的行终止符,win下为"\r\n",Linux下为"\n"
 5 Out[28]: '\r\n'
 6 
 7 os.pathsep  #输出用于分割文件路径的字符串
 8 Out[29]: ';'
 9 
10 os.name    #输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
11 Out[30]: 'nt'
12 
13 os.system('bash command')  运行shell命令,直接显示
14 Out[31]: 1
15 
16 os.environ   #获取系统环境变量
17 Out[32]: environ({'ALLUSERSPROFILE': 'C:\\ProgramData', 'APPDATA': 'C:\\Users\\zoe\\AppData\\Roaming', 'ASL.LOG': 'Destination=file', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files', 'COMPUTERNAME': 'ZOE-PC', 'COMSPEC': 'C:\\Windows\\system32\\cmd.exe', 'FP_NO_HOST_CHECK': 'NO', 'HOMEDRIVE': 'C:', 'HOMEPATH': '\\Users\\zoe', 'LOCALAPPDATA': 'C:\\Users\\zoe\\AppData\\Local', 'LOGONSERVER': '\\\\ZOE-PC', 'MOZ_PLUGIN_PATH': 'C:\\Program Files (x86)\\Foxit Software\\Foxit Reader\\plugins\\', 'NUMBER_OF_PROCESSORS': '4', 'ONEDRIVE': 'C:\\Users\\zoe\\OneDrive', 'OS': 'Windows_NT', 'PATH': 'C:\\Users\\zoe\\Anaconda3\\Library\\bin;C:\\Users\\zoe\\Anaconda3\\Library\\bin;C:\\Users\\zoe\\Anaconda3;C:\\Users\\zoe\\Anaconda3\\Library\\mingw-w64\\bin;C:\\Users\\zoe\\Anaconda3\\Library\\usr\\bin;C:\\Users\\zoe\\Anaconda3\\Library\\bin;C:\\Users\\zoe\\Anaconda3\\Scripts;C:\\Users\\zoe\\Anaconda3\\Library\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Users\\zoe\\Anaconda3;C:\\Users\\zoe\\Anaconda3\\Scripts;C:\\Users\\zoe\\Anaconda3\\Library\\bin;', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 69 Stepping 1, GenuineIntel', 'PROCESSOR_LEVEL': '6', 'PROCESSOR_REVISION': '4501', 'PROGRAMDATA': 'C:\\ProgramData', 'PROGRAMFILES': 'C:\\Program Files', 'PROGRAMFILES(X86)': 'C:\\Program Files (x86)', 'PROGRAMW6432': 'C:\\Program Files', 'PSMODULEPATH': 'C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules\\', 'PUBLIC': 'C:\\Users\\Public', 'SESSIONNAME': 'Console', 'SYSTEMDRIVE': 'C:', 'SYSTEMROOT': 'C:\\Windows', 'TEMP': 'C:\\Users\\zoe\\AppData\\Local\\Temp', 'TMP': 'C:\\Users\\zoe\\AppData\\Local\\Temp', 'USERDOMAIN': 'zoe-PC', 'USERNAME': 'zoe', 'USERPROFILE': 'C:\\Users\\zoe', 'WINDIR': 'C:\\Windows', 'WINDOWS_TRACING_FLAGS': '3', 'WINDOWS_TRACING_LOGFILE': 'C:\\BVTBin\\Tests\\installpackage\\csilogfile.log', 'CONDA_PREFIX': 'C:\\Users\\zoe\\Anaconda3', 'LANG': 'en', 'SPYDER_ARGS': '[]', 'QT_API': 'pyqt5', 'IPYTHON_KERNEL': 'True', 'EXTERNAL_INTERPRETER': 'False', 'UMR_ENABLED': 'True', 'UMR_VERBOSE': 'True', 'UMR_NAMELIST': '', 'JPY_INTERRUPT_EVENT': '2396', 'IPY_INTERRUPT_EVENT': '2396', 'JPY_PARENT_PID': '2400', 'SPYDER_PARENT_DIR': 'C:\\Users\\zoe\\Anaconda3\\lib\\site-packages', 'TERM': 'xterm-color', 'CLICOLOR': '1', 'PAGER': 'cat', 'GIT_PAGER': 'cat', 'MPLBACKEND': 'module://ipykernel.pylab.backend_inline'})
18 
19 os.environ['path']  #获取系统环境变量中的'path'的value
20 Out[33]: 'C:\\Users\\zoe\\Anaconda3\\Library\\bin;C:\\Users\\zoe\\Anaconda3\\Library\\bin;C:\\Users\\zoe\\Anaconda3;C:\\Users\\zoe\\Anaconda3\\Library\\mingw-w64\\bin;C:\\Users\\zoe\\Anaconda3\\Library\\usr\\bin;C:\\Users\\zoe\\Anaconda3\\Library\\bin;C:\\Users\\zoe\\Anaconda3\\Scripts;C:\\Users\\zoe\\Anaconda3\\Library\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Users\\zoe\\Anaconda3;C:\\Users\\zoe\\Anaconda3\\Scripts;C:\\Users\\zoe\\Anaconda3\\Library\\bin;'
21 
22 #从os.environ['path']可以确认看出用于分割文件路径的字符串在windows环境下为‘;’
23 
24 
25 
26 os.path
27 Out[35]: <module 'ntpath' from 'C:\\Users\\zoe\\Anaconda3\\lib\\ntpath.py'>
28 
29 os.path.abspath()
30 Traceback (most recent call last):
31 
32   File "<ipython-input-36-cace3dfa6cb5>", line 1, in <module>
33     os.path.abspath()
34 
35 TypeError: abspath() missing 1 required positional argument: 'path'
36 
37 
38 os.path.abspath(r'e:\')
39   File "<ipython-input-37-d574e1c34a8d>", line 1
40     os.path.abspath(r'e:\')
41                            ^
42 SyntaxError: EOL while scanning string literal
43 
44 
45 os.path.abspath(r'e:\crm')
46 Out[38]: 'e:\\crm'
47 
48 os.path.abs(__file__)
49 Traceback (most recent call last):
50 
51   File "<ipython-input-39-b3e4757c5315>", line 1, in <module>
52     os.path.abs(__file__)
53 
54 AttributeError: module 'ntpath' has no attribute 'abs'
55 
56 
57 os.path.abspath(__file__)
58 Traceback (most recent call last):
59 
60   File "<ipython-input-40-b81f43380c75>", line 1, in <module>
61     os.path.abspath(__file__)
62 
63 NameError: name '__file__' is not defined

 

os.path.abspath(path)  返回path规范化的绝对路径
os.path.split(path)  将path分割成目录和文件名二元组返回
os.path.dirname(path)  返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path)  返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path)  如果path存在,返回 True ;如果path不存在,返回 False
os.path.isabs(path)  如果path是绝对路径,返回 True
os.path.isfile(path)  如果path是一个存在的文件,返回 True 。否则返回 False
os.path.isdir(path)  如果path是一个存在的目录,则返回 True 。否则返回 False
os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path)  返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间
 
 1 os.path.abspath(r'e:\crm')  #返回path规范化的绝对路径
 2 Out[53]: 'e:\\crm'
 3 
 4 '''在.py文件中写入os.path.abspath(__file__)返回的是当前脚本目录的绝对路径'''
 5 
 6 os.path.split(r'c:\a\b.txt')  #将path分割成目录和文件名二元组返回
 7 Out[58]: ('c:\\a', 'b.txt')  #不管dirname是否真实存在,os.path.split('dirname')都会对其dirname进行拆分.
 8 
 9 os.path.split(r'c:\a\b')
10 Out[59]: ('c:\\a', 'b')  #如果路径最后没有文件名,就会拆最后一级的目录
11 
12 os.path.dirname(r'c:\a\b')   #返回path的目录。
13 Out[60]: 'c:\\a'  #其实就是os.path.split(path)的第一个元素
14 
15 os.path.dirname(r'c:\a\b.txt')
16 Out[61]: 'c:\\a'
17 
18 os.path.basename(r'c:\a\b') #返回path最后的文件名。
19 Out[62]: 'b'  #即os.path.split(path)的第二个元素
20 
21 os.path.basename(r'c:\a\b.txt')
22 Out[63]: 'b.txt'
23 
24 os.path.basename(r'c:')
25 Out[68]: ''
26 
27 #以上os.path.split('dirname'),os.path.dirname('dirname'),os.path.basename('dirname') 三个方法都对‘dirname’没有是否存在的要求,下面os.path.exists(path)就是判断路径是否存在的方法。
28 
29 os.path.exists(r'c:')  
30 Out[74]: True  #如果path存在,返回True;如果path不存在,返回False
31 
32 os.path.exists(r'c:\a')
33 Out[75]: False  #如果path存在,返回True;如果path不存在,返回False
34 
35 os.path.isdir(r'c:')  #如果path是一个存在的目录,则返回True。否则返回False
36 Out[85]: True
37 
38 os.path.isdir(r'c:\a')  如果path是一个存在的目录,则返回True。否则返回False
39 Out[86]: False
40 
41 os.path.isabs(r'c:\a')  # 如果path是绝对路径,返回True
42 Out[76]: True
43 
44 os.path.isabs(r'\a')  #开始是'c','\','/'的路径都会被判断为绝对路径
45 Out[77]: True
46 os.path.isabs(r'/a')
47 Out[80]: True
48 
49 os.path.isabs(r'a')
50 Out[78]: False
51  
52 os.path.isfile(r'c:')  #如果path是一个存在的文件,返回True。否则返回False
53 Out[82]: False
54 
55 os.path.isfile(r'c:\a.txt')  
56 Out[83]: False
57 
58 os.path.isfile(r'c:\users\zoe\password.py')
59 Out[84]: True
60 
61 os.path.join(r'c:',r'\a')  #将多个路径组合后返回
62 Out[87]: 'c:\\a'
63 
64 os.path.join(r'c:',r'\a',r'b')
65 Out[88]: 'c:\\a\\b'
66 
67 os.path.getatime(r'c:\a')   #返回path所指向的文件或者目录的最后存取时间,文件或目录不存在这会报错
68 Traceback (most recent call last):
69 
70   File "<ipython-input-91-0707bf1e82de>", line 1, in <module>
71     os.path.getatime(r'c:\a')
72 
73   File "C:\Users\zoe\Anaconda3\lib\genericpath.py", line 60, in getatime
74     return os.stat(filename).st_atime
75 
76 FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'c:\\a'
77 
78 
79 os.path.getatime(r'c:\users\zoe\password.py')
80 Out[92]: 1497173607.616484  #返回存取时间的时间戳格式
81 
82 os.path.getmtime(r'c:\users\zoe\password.py')  #返回path所指向的文件或者目录的最后修改时间
83 Out[93]: 1497173559.5877368 

 

转载于:https://www.cnblogs.com/zoe233/p/7114886.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值