当前位置:   article > 正文

python sys os time random模块_pycharm安装sys os time 模块

pycharm安装sys os time 模块

一、sys

import sys
print(sys.version)  # python版本号等
print(sys.maxsize)  # 当前表示最大int
print(sys.path)  # 检索路径
print(sys.platform)  # 操作平台linux
print(sys.copyright)  # 版权信息
print(sys.argv)  # 参数
# 可以在pycharm终端中 python main.py 加参数
# sys.exit(0)  # 正常退出
# sys.exit(-1)  # 退出状态码退出
print(sys.getdefaultencoding())  # utf-8默认编码
print(sys.getdefaultencoding())  # utf-8文件默认编码
print(sys.getrecursionlimit())  # 最大调用次数打印
sys.setrecursionlimit(2000)  # 改大最大调用次数
print(sys.getrecursionlimit())  # 最大调用次数打印


def recursionFunc(i):
    print(i)
    recursionFunc(i+1)


recursionFunc(1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

二、os

import os
# 系统相关变量操作
print(os.name)  # posix
print(os.environ)  # 环境变量
print(os.sep)  # linux左斜杠/ windows又斜杠\
print(os.pathsep)  # linux冒号: windows分号;
print(os.linesep)  # 换行符号
# 文件目录相关操作
os.mkdir("stddemo")  # 创建新目录
os.rmdir("stddemo")  # 删掉目录
print(os.getcwd())  # 当前目录
file = os.getcwd() + "/main.py"
print(file)
print(os.path.split(file))  # 分割当前路径名与文件名
print(os.path.isabs(file))  # 判断文件是否绝对路径
print(os.path.isabs("main.py"))  # isdir isfile
print(os.path.exists(file))  # 存在性判断
print(os.path.getatime(file))  # 最后修改时间 返回时间戳 1970年到现在
print(os.path.getctime(file))  # 创建时间
print(os.path.getsize(file))  # 文件大小字节
# os.remove("xxx")  删除文件
# 执行命令管理进程
# os.system("xxx.py")  # 调用可执行文件
# os.system("ipconfig")  # windows下常用 查看本地ip地址
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

三、time

import time
# 时间戳1970-1-1凌晨到指定时间秒 结构化时间对象 格式化时间字符串
print(time.time())  # 当前时间戳
st = time.localtime()  # 结构化时间对象 不输入参数 当前时间 本地当地时间
print(type(st))  # time.struct_time 类的对象
print(st)  # 内容
# (tm_year=2021, tm_mon=9, tm_mday=7, tm_hour=19, tm_min=54, tm_sec=25, tm_wday=1, tm_yday=250, tm_isdst=0)
# 年月日 时分秒 0代表星期一 有的方法0代表星期日 一年中的第几天  tm_isdst 不常用
# st 可以视为9元素元组 (只读)
print("{}-{}-{}".format(st[0], st[1], st[2]))
print(time.ctime())  # 格式化时间字符串
# 自定义时间格式 strftime "%Y-%m-%d %H:%M:%S"
print(time.strftime("%Y-%m-%d %H:%M:%S"))  # 2021-09-07 20:29:05
print(time.strftime("%Y-%m-%d %I:%M:%S %p"))  # 2021-09-07 08:29:05 PM 12小时制 且输出am或pm
print(time.strftime("%Y年%m月%d日 %H时%M分%S秒"))  # 2021年09月07日 20时29分05秒
print(time.strftime("%Y-%m-%d %H:%M:%S %a"))  # 2021-09-07 20:33:41 Tue
print(time.strftime("%Y-%m-%d %H:%M:%S %A"))  # 2021-09-07 20:33:41 Tuesday
print(time.strftime("%Y-%m-%d %H:%M:%S %b"))  # 2021-09-07 20:33:41 Sep
print(time.strftime("%Y-%m-%d %H:%M:%S %B"))  # 2021-09-07 20:33:41 September
print(time.strftime("%Y-%m-%d %I:%M:%S %w"))  # 2021-09-07 08:36:25 2 这个2就代表星期2
print(time.strftime("%Y-%m-%d %I:%M:%S %W"))  # 2021-09-07 08:36:25 36 本周是今年第几周
t1 = time.time()
print("begin")
time.sleep(1.00)  # 等三秒
print("end")
t2 = time.time()
print("{:.3f}秒".format(t2-t1))  # 时间差
# 三种格式之间转换
# 时间戳->结构化
print(time.gmtime())  # UTC格林尼治时间 无输入就是默认输入time.time()
print(time.gmtime(time.time()))

print(time.localtime())  # 当地时间
print(time.localtime(time.time()))

# 结构化对象->时间戳
print(time.time())
print(time.mktime(time.localtime()))  # 没有秒后面数字

# 结构化对象 -> 格式化时间字符串
# time.strftime(format, st) st可以不输入默认当前时间
print(time.strftime("%Y-%m-%d %H:%M:%S"))
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
print(time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime()))

# 格式化时间字符串 -> 结构化对象
# time.strptime(str, format)
strtime = time.strftime("%Y-%m-%d %H:%M:%S")
print(time.strptime(strtime, "%Y-%m-%d %H:%M:%S"))

# 时间戳 -> localtime -> 结构化时间
# 结构化时间 -> mktime -> 时间戳
# 结构化时间 -> strftime -> 格式化时间字符串
# 格式化时间字符串 -> strptime -> 结构化时间
  • 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
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54

四、datetime

import datetime
import time

# datetime.date
# 生成日期
d = datetime.date.today()  # 今日日期
print(d, type(d))
d = datetime.date(2021, 6, 30)  # 日期格式
print(d, type(d))
d = datetime.date.fromtimestamp(time.time())  # 从时间戳生成日期
print(d, type(d))

# 类属性
print(datetime.date.max)  # 最大值
print(datetime.date.min)  # 最小值
print(datetime.date.resolution)  # 最小时间间隔

# 实例属性
print(d.year)
print(d.month)
print(d.day)

# 常用实例化方法
# datetime.date -> 结构化时间对象
print(d.timetuple())

# 其他方法
# 替换
print(d.replace(2022))
print(d.replace(d.year, 9))
print(d.replace(day=20))
print(d.toordinal())  # 从0001-01-01 到 距离d天数
print(d.weekday())  # 0为周一
print(d.isoweekday())  # 1为周一 0为周日
print(d.isoformat())  # 标准格式
print(d.strftime("%Y年%m月%d日"))  # 汉字显示

# datetime.time
t = datetime.time(15, 10, 45, 888888)  # 六位微秒
print(t, type(t))

# 类方法
print(datetime.time.min)
print(datetime.time.max)
print(datetime.time.resolution)

# 实例属性
print(t.hour)
print(t.minute)
print(t.second)
print(t.microsecond)

# replace方法
# 其他方法
print(t.isoformat())  # 格式化
print(t.strftime("%H时%M分%S秒%f微秒"))

# datetime类
# 生成日期时间
dt = datetime.datetime(2020, 6, 30, 13, 22, 34, 888888)
print(dt, type(dt))
dt = datetime.datetime.today()
print(dt, type(dt))
dt = datetime.datetime.now(tz=None)  # 时区
print(dt, type(dt))
dt = datetime.datetime.utcnow()  # 格林尼治
print(dt, type(dt))

# 时间戳 -> dt
dt = datetime.datetime.fromtimestamp(time.time())
print(dt, type(dt))
dt = datetime.datetime.utcfromtimestamp(time.time())
print(dt, type(dt))

# 字符串 -> dt
dt = datetime.datetime.strptime("2021-09-27 08:28:30", "%Y-%m-%d %H:%M:%S")
print(dt, type(dt))

# date, time -> datetime
dt = datetime.datetime.combine(d, t)
print(dt, type(dt))

# 属性
print(datetime.datetime.min)
print(datetime.datetime.max)
print(datetime.datetime.resolution)

print(dt.year)
print(dt.month)
print(dt.day)
print(dt.hour)
print(dt.minute)
print(dt.second)
print(dt.microsecond)

# replace
print(dt.replace(second=57, day=20))

# 转换
# datetime -> 结构化对象
print(dt.timetuple())
# datetime -> 时间戳
print(dt.timestamp())
# datetime -> 格式化字符串
print(dt.strftime("%H时%M分%S秒%f微秒"))

# 时间戳 -> datetime
print(datetime.datetime.fromtimestamp(time.time()))
# 格式化字符串 -> datetime
print(datetime.datetime.strptime("2021-09-27 08:28:30", "%Y-%m-%d %H:%M:%S"))
# 结构化对象 -> datetime 通过时间戳
print(datetime.datetime.fromtimestamp(time.mktime(time.localtime())))

# timedelta
# class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, hours=0, weeks=0)
# 生成时间差
td = datetime.timedelta(days=10, hours=-5)
print(td, type(td))
td = datetime.timedelta(hours=75)  # 默认转为天
print(td, type(td))
td = datetime.timedelta(weeks=2)  # 默认转为天
print(td, type(td))

# 计算目标日期
print("{}".format(dt.strftime("%Y年%m月%d日 %H时%M分%S秒")))
delta = datetime.timedelta(days=10)  # 十天后
target = dt + delta
print("{}".format(target.strftime("%Y年%m月%d日 %H时%M分%S秒")))

dt1 = datetime.datetime.today()
dt2 = datetime.datetime.utcnow()
td = dt1 - dt2
print("相差{}小时".format(td.seconds/3600))
  • 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
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133

五、random

import random
# 随机生成证整数
print(random.randint(1, 100))  # 从范围抽随机 包含1和100
print(random.randrange(1, 101, 2))  # 必是奇数
print(random.randrange(2, 101, 2))  # 必是偶数
# 随机生成浮点数
print(random.random())  # 浮点数 0.0 - 1.0
print(random.uniform(11.1, 13.2))  # 区间内浮点数
# 随机抽样
targetlist = ["a", "b", "c", "d", "e", "f"]
print(random.choice(targetlist))
# 乱序
print(targetlist)
# random.shuffle(targetlist)
# print(targetlist)  # 无返回值 直接打乱
# 元组 或不改变原列表 抽样并乱序
print(random.sample(targetlist, 6))  # 也可以抽一部分
print(targetlist)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
# 生成随机密码字符串
# 指定位数 只包括字母数字

import random
import string


def gen_random_string(length):
    numcount = random.randint(1, length-1) #  数字至少一位 最多也给字母留下一位
    lettercount = length - numcount  # 字母位数
    numlist = [random.choice(string.digits) for _ in range(numcount)]  # 字符串0123456789
    letterlist = [random.choice(string.ascii_letters) for _ in range(lettercount)]  # a-zA-Z
    alllist = numlist + letterlist
    random.shuffle(alllist)
    result = "".join([i for i in alllist])
    return result

randString = gen_random_string(32)
print(randString)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/515920
推荐阅读
相关标签
  

闽ICP备14008679号