ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

模块基础

2021-06-10 15:37:01  阅读:138  来源: 互联网

标签:random 基础 tm 模块 time path os 目录


模块基础

死亡三问

# 什么是模块
    模块就是一个封装程度更高的一个容器
                1 使用python编写的.py文件

                2 已被编译为共享库或DLL的C或C++扩展

                3 把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包)

                4 使用C编写并链接到python解释器的内置模块
                
# 为什么要用模块
    为了方便管理代码,使程序的结构更清晰,方便管理,提升开发效率

# 模块怎么用
   最常见的用法,py的文件名在另外一个py文件中import加那个py的文件名,不要加.py
   import ...
       指名道姓去要,要加前缀,但是不会冲突,当然你可以选择加一个as,给这个前缀起一个别名
   from ...import ...
        不用加前缀,但是会与本身的函数可能会冲突

time模块

>>> time.time()
1623228465.962022
'''
这个是世界戳,指的是从1970年也就是unix元年,到现在的秒数
'''

>>> time.strftime('%Y-%m-%d   %H:%M:%S')
'2021-06-09   16:49:24'
'''
时间的格式化输出
'''
>>> time.localtime()
time.struct_time(tm_year=2021, tm_mon=6, tm_mday=9, tm_hour=16, tm_min=49, tm_sec=59, tm_wday=2, tm_yday=160, tm_isdst=0)
>>> time.gmtime()
time.struct_time(tm_year=2021, tm_mon=6, tm_mday=9, tm_hour=8, tm_min=50, tm_sec=16, tm_wday=2, tm_yday=160, tm_isdst=0)
'''
localtime : 本地时区的时间
gmtime : UTC时区的时间,世界标准时间
'''

random模块

# 0与1之间生成一个随机的小数
>>> random.random()
0.23934059769074678

# 1和3,之间随机取一个整数,1跟3可以取到
>>> random.randint(1,3)
1

# 1和3之间,随机生成一个整数,顾头不顾尾
>>> random.randrange(1,3)
2

# 在choice括号里面这个列表里面随机取到一个元素
>>> random.choice([1,'qwe',23,[1,2,]])
1

# sample(列表,n)    这个在这个列表里面随机找2个组合
>>> random.sample([1,'qwe',3,[1,2]],2)
['qwe', 1]

# 大于1小于3的一个随机小数
>>> random.uniform(1,3)
2.834386166680978

# 洗牌 -- 打乱顺序
>>> l = [1,2,3,45,6,7]
>>> random.shuffle(l)
>>> print(l)
[3, 7, 2, 45, 6, 1]
案例一:
'''
生成一个随机验证码(字母,数字组成)
'''

# 知识储备
>>> chr(122)
'z'
>>> chr(65)
'A'
>>> ord('a')
97
>>> ord('Z')
90


import random
def mak_code(size):
    res = ''
    for i in range(size):
        num = str(random.randint(0, 9))            # 随机得到一个0-9的整数,0和9可取
        s_low = chr(random.randint(65, 90))        # 随机得到一个65-90的整数,转化成字母
        s_upper = chr(random.randint(97, 122))
        res += random.choice([num, s_low, s_upper])# 得到的三个数随机取一个
    return res

os模块

'''
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    输出用于分割文件路径的字符串 win下为;,Linux下为:
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.path.getsize(path) 返回path的大小
'''

>>> import os
>>> os.environ['name'] = 'lyh'
>>> os.environ
environ({'ALLUSERSPROFILE': 'C:\\ProgramData', ...... 'WINDIR': 'C:\\WINDOWS', 'NAME': 'lyh'})
# 变量分为局部变量,全局变量,环境变量。 局部变量,局部有效,全局变量在这个py文件中有效,环境变量,在整个项目中有效。查找优先级,局部-->全局-->环境

subprocess模块

subprocess.Popen('tasklist', shell=True)
print('hello')
time.sleep(3)
'''
这个程序运行启动一个进程,开启一个子进程,然后调用Popen这个方法,传入这个终端命令,父进程打印hello并且睡眠3秒,
子进程拿到运行的结果返回给父进程
'''

obj = subprocess.Popen('tasklist', shell=True,
                       stdout=subprocess.PIPE,  # 子进程的结果丢到管道里面,正确管道
                       stderr=subprocess.PIPE  # 错误管道
                       )

res1 = obj.stdout.read()  # 父进程在这等着子进程的结果,一直等,
print(res1.decode('gbk'))

标签:random,基础,tm,模块,time,path,os,目录
来源: https://www.cnblogs.com/lyh-cur/p/14871233.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有