python 从小白开始 - os模块

时间:2023-01-20 22:36:03

1、os模块

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

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

os路径处理

 1 os路径处理
 2 #方式一:推荐使用
 3 import os
 4 #具体应用
 5 import os,sys
 6 possible_topdir = os.path.normpath(os.path.join(
 7     os.path.abspath(__file__),
 8     os.pardir, #上一级
 9     os.pardir,
10     os.pardir
11 ))
12 sys.path.insert(0,possible_topdir)
13 
14 
15 #方式二:不推荐使用
16 os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

2、sys模块

1 sys.argv           命令行参数List,第一个元素是程序本身路径
2 sys.exit(n)        退出程序,正常退出时exit(0)
3 sys.version        获取Python解释程序的版本信息
4 sys.maxint         最大的Int值
5 sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
6 sys.platform       返回操作系统平台名称
 1 #=========知识储备==========
 2 #进度条的效果
 3 [#             ]
 4 [##            ]
 5 [###           ]
 6 [####          ]
 7 
 8 #指定宽度
 9 print('[%-15s]' %'#')
10 print('[%-15s]' %'##')
11 print('[%-15s]' %'###')
12 print('[%-15s]' %'####')
13 
14 #打印%
15 print('%s%%' %(100)) #第二个%号代表取消第一个%的特殊意义
16 
17 #可传参来控制宽度
18 print('[%%-%ds]' %50) #[%-50s]
19 print(('[%%-%ds]' %50) %'#')
20 print(('[%%-%ds]' %50) %'##')
21 print(('[%%-%ds]' %50) %'###')
22 
23 
24 #=========实现打印进度条函数==========
25 import sys
26 import time
27 
28 def progress(percent,width=50):
29     if percent >= 1:
30         percent=1
31     show_str=('[%%-%ds]' %width) %(int(width*percent)*'#')
32     print('\r%s %d%%' %(show_str,int(100*percent)),file=sys.stdout,flush=True,end='')
33 
34 
35 #=========应用==========
36 data_size=1025
37 recv_size=0
38 while recv_size < data_size:
39     time.sleep(0.1) #模拟数据的传输延迟
40     recv_size+=1024 #每次收1024
41 
42     percent=recv_size/data_size #接收的比例
43     progress(percent,width=70) #进度条的宽度70
44 
45 打印进度条