Python学习笔记 - 基础模块


time

示例

# 时间戳, timeStamp
time.time() # 1594665462.3188128

# 结构化时间, structTime
# time.struct_time(tm_year=2020, tm_mon=7, tm_mday=14, tm_hour=2, tm_min=37, tm_sec=42, tm_wday=1, tm_yday=196, tm_isdst=0)
time.localtime() # 北京时间 2020-07-14 02:37:42, 参数为秒偏移量, 基准是 1970 年 1 月 1 日
time.gmtime() # 伦敦时间, 其他同上

# 格式化时间, formatTime
time.strftime("%Y-%m-%d %H:%M:%S") # 2020-07-14 02:59:36


转化方法表

描述方法
时间戳 -> 结构化时间time.localtime([timtStamp]), 不填获取当前时间的结构化时间
结构化时间 -> 格式化时间time.strftime(formatSpec[, structTime]), 不填获取当前时间的格式化时间
格式化时间 -> 结构化时间time.strptime(structTime, formatSpec), “%Y-%m-%d %H:%m:%S”
结构化时间 -> 时间戳time.mktime(structTime)

格式化时间参数

格式化字符含义
%y两位数的年份表示(00-99)
%Y四位数的年份表示(000-9999)
%m月份(01-12)
%d月内中的一天(0-31)
%H24小时制小时数(0-23)
%I12小时制小时数(01-12)
%M分钟数(00=59)
%S秒(00-59)
%a本地简化星期名称
%A本地完整星期名称
%b本地简化的月份名称
%B本地完整的月份名称
%c本地相应的日期表示和时间表示
%j年内的一天(001-366)
%p本地A.M.或P.M.的等价符
%U一年中的星期数(00-53)星期天为星期的开始
%w星期(0-6),星期天为星期的开始
%W一年中的星期数(00-53)星期一为星期的开始
%x本地相应的日期表示
%X本地相应的时间表示
%Z当前时区的名称
%%%号本身

random

示例

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

# 随机生成一个1-3之间的小数
random.uniform(1,3)

# 随机生成一个1-3整数
random.randint(1,3)

# 随机生成一个1-10以内, 步长为2的数字
random.randrange(1,10,2)

# 根据ascii码先生成随机数, 再转为字母
chr(random.randint(65,90)) # 大写A-Z
chr(random.randint(97,122)) # 小写a-z

# 随机选择一个返回, 参数为 list, tumple, iterabler 均可
random.choice([1,'23',[4,5]])  # 1或者23或者[4,5]

# 随机选择多个返回
random.sample([1,'23',[4,5]], 2) # 列表元素任意2个组合

# 打乱列表顺序
item=[1,3,5,7,9]
random.shuffle(item)


练习

import random

# 纯数字验证码, n 为验证码位数
def func1(n):
    s = ""

    while n > 0:
        r = str(random.randint(0, 9))
        s += r
        n -= 1
       
    return s

# 数字+字母验证码, n 为验证码位数
def func2(n):
    s = ""

    while n > 0:
        # 大写字母
        a1 = chr(random.randint(65, 90))
        # 小写字母
        a2 = chr(random.randint(97, 122))
        num = str(random.randint(0, 9))
        # 多选一
        s += random.choice([a1, a2, num])
        n -= 1

    return s

# 发红包, x 为红包总金额, y 为红包个数
def func3(x, y):
    # 一个区间中, 分割点的数量
    # 例: 5 个红包, 需要 4 个分割点
    count = y-1

    # sample, 可在一个迭代对象中, 随机选多个元素
    # 在数字区间内, 选多个数字作为分隔点, 并排序
    l = random.sample(range(1, x), count)
    l.sort()

    # 定义一个列表用于存储结果
    r = []

    # 使用分隔点处理红包金额
    # 处理第一个金额
    r.append(l[0])
    # 处理中间的金额
    for i in range(1, count):
        r.append(l[i]-l[i-1])
    # 处理最后一个金额
    r.append(x-l[count-1])

    # 将结果返回
    return r

if __name__ == "__main__":
    print(func1(4))
    print(func2(6))
    print(func3(100, 4))
    

os - 系统相关模块

示例

# 获取工作目录 - pwd
print(os.getcwd())

# 变更工作目录 - cd
os.chdir('..')
os.chdir('/home/op/tools/')

# 展示目录下内容, 返回值为列表 - ls
os.listdir()

# 创建单独目录aa - mkdir
os.mkdir('aa')

# 递归创建目录 - mkdir -p /a/b/c
os.mkdirs('/a/b/c')

# 删除单独目录aa - rm -rf aa
os.rmdir('aa')

# 递归删除目录, 向上递归, 若为空则删除, 慎用
os.removedirs()

# 删除文件 - rm 
os.remove(file_name)

# 重命名文件 - mv a a_bak
os.rename(old_name, new_name)

# 系统路径分隔符, win下为"\\",Linux下为"/
os.sep

# 系统行终止符, win下为"\t\n",Linux下为"\n
os.linesep

# 系统分割文件路径的字符, win下为;,Linux下为:
os.pathsep

# 输出字符串指示当前使用平台, win->'nt'; Linux->'posix'
os.name

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

# 运行shell命令并显示结果
os.system("ls -l")

# 运行shell命令并保存结果
ret = os.popen("bash command")
ret.read()

# 绝对路径
os.path.abspath()

# 上一级目录
os.path.dirname()

# 获取文件名
os.path.basename()

# (file_path,file_name) --> (os.path.dirname(),os.path.basename())
os.path.split()

# 判断路径是否存在
os.path.exists()

# 判断是否为绝对路径
os.path.isabs()

# 使用系统的路径连接符, 把字符串拼成路径
os.path.join('/home','op','tools')

# 返回path的大小
os.path.getsize('path')


sys - python解释器相关

示例

# 环境变量, 在目录内的包和模块才能导入
print(sys.path)

# 打印参数, 返回值是list, 可以加索引分别取值
print(sys.argv)
'''
	python3 /xx/xx/a.py 1 2 3 
	sys.argv[0] 为 /xx/xx/a.py

	python3 a.py 1 2 3 
	sys.argv[0] 为 a.py
	
	sys.argv[1] 为 1
	sys.argv[2] 为 2
	sys.argv[3] 为 3
	
'''

# 打印已经导入的所有模块的名字
print(sys.modules)

# 加退出码, 异常退出259
sys.exit(259)

# 退出提示
sys.exit('error')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值