python之random 、os 、sys 模块

一、random模块

1、random   随机生成[0,1)的小数:
	-res=random.random()
    -print(res)
       -0.9046791911295252
2、randint   随机生成一个a到b之间的整数,前闭后闭 [a,b]
	-res=random.randint(1,10)
	-print(res)
       -6
3、randrange     随机生成一个a到b之间的整数,前闭后开 [a,b)
    -res=random.randrange(0,100)
    -print(res)
       -9
4、uniform   [a,b)生成一个  a到b之间的小数,当b为整数时,区间变为[a,b]
	-res=random.uniform(1,2)
	-print(res)
       -1.8606205204140212
5、choice   传入列表,随机从列表中出一个值
	-res=random.choice([1,2,3,[1,2,3],[4,5,6],5,6,])
	-print(res)
       -6
6、sample    (list,n)从列表中随机出n个,返回列表
	-l=[1,2,3,4,5,6]
	-es=random.sample(l,4)
	-print(res)
       -[6, 2, 3, 4]
7、shuffle 传一个列表,直接将列表随机打乱,无返回值
	-l = [1, 2, 3, 4, 5, 6]
	-random.shuffle(l)
	-print(res)
        -[2, 6, 5, 1, 3, 4]

二、OS

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

规范化路径,如..和/
>>> os.path.normpath('c://windows\\System32\\../Temp/')   
'c:\\windows\\Temp'   

>>> a='/Users/jieli/test1/\\\a1/\\\\aa.py/../..'
>>> print(os.path.normpath(a))
/Users/jieli/test1
os路径处理
#方式一:推荐使用
import os
#具体应用
import os,sys
possible_topdir = os.path.normpath(os.path.join(
    os.path.abspath(__file__),
    os.pardir, #上一级
    os.pardir,
    os.pardir
))
sys.path.insert(0,possible_topdir)


#方式二:不推荐使用
os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

三、sys

1、sys.argv           命令行参数List,第一个元素是程序本身路径
	-print(sys.argv)
    	-['D:/a.py']
2、sys.exit(n)        退出程序,正常退出时exit(0)
	-print(sys.exit('QQ浏览器'))
    	-QQ浏览器
3、sys.version        获取Python解释程序的版本信息
	-print(sys.version )
    	-3.8.6 (tags/v3.8.6:db45529, Sep 23 2020, 15:52:53) [MSC v.1927 64 bit (AMD64)]
4、sys.maxsize        最大的Int值
	-print(sys.maxsize)
    	-9223372036854775807
5、sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
	-print(sys.path)
    	-略。。。
6、sys.platform       返回操作系统平台名称
	-print(sys.platform)
    	-win32
#=========知识储备==========
#进度条的效果
[#             ]
[##            ]
[###           ]
[####          ]

#指定宽度
print('[%-15s]' %'#')
print('[%-15s]' %'##')
print('[%-15s]' %'###')
print('[%-15s]' %'####')

#打印%
print('%s%%' %(100)) #第二个%号代表取消第一个%的特殊意义

#可传参来控制宽度
print('[%%-%ds]' %50) #[%-50s]
print(('[%%-%ds]' %50) %'#')
print(('[%%-%ds]' %50) %'##')
print(('[%%-%ds]' %50) %'###')


#=========实现打印进度条函数==========
import sys
import time

def progress(percent,width=50):
    if percent >= 1:
        percent=1
    show_str=('[%%-%ds]' %width) %(int(width*percent)*'#')
    print('\r%s %d%%' %(show_str,int(100*percent)),file=sys.stdout,flush=True,end='')


#=========应用==========
data_size=1025
recv_size=0
while recv_size < data_size:
    time.sleep(0.1) #模拟数据的传输延迟
    recv_size+=1024 #每次收1024

    percent=recv_size/data_size #接收的比例
    progress(percent,width=70) #进度条的宽度70

打印进度条
posted @ 2020-12-17 08:57  叶灵溪  阅读(115)  评论(0编辑  收藏  举报
aplayer
##============================ /* 看板娘 */ =======================