day14常用模块

day 14 常用模块

1、os模块

​ 1、os模块的使用

​ 1)os模块:文件或者文件夹(目录)或者路径相关操作

​ 2)例如:创建文件夹、创建文件、删除文件、判断文件是否存在、获取路径、获取一个文件夹中的所有文件等等

import os
# 1)返回当前工作目录
print(os.getcwd())          # F:\QF\语言基础01\day14常用模块

# 2)获取指定文件夹中所有的内容的名字
# os.listdir(文件夹路径)
result = os.listdir(r'F:\LMT\day1')
print(result)

# 3)创建文件夹
"""
os.mkdir(文件夹路径)    -    在指定路径下创建指定的文件夹(要求整个路径中只有最后的那个文件夹不存在才可以创建)
os.makedirs(文件夹路径)  -   递归创建文件夹(可以创建路径中所有不存在的文件夹)
"""
# path = r'F:\QF\语言基础01\day14常用模块\aaa\files2'
# os.makedirs(path)

# 4)返回绝对路径
"""
os.path.abspath(相对路径)   -   返回相对路径对应的绝对路径

绝对路径:文件或文件夹在计算机中的全路径(windows电脑绝对路径从盘开始写)
相对路径:用.表示当前目录(当前目录指的是当前代码文件所在的文件夹)
        用..表示当前目录的上层目录
        
"""

# 5)获取文件名   -   获取文件路径中的文件名
result = os.path.basename(r'/\aaa\demo.py')
print(result)

result = os.path.basename(r'/\01OS模块.py')
print(result)

# 6)检测路径是否有效
print(os.path.exists('./demo.py'))
print(os.path.exists('./01OS模块.py'))

# 7)判断是否是文件或者文件夹、
"""
os.path.isfile(路径)  -   是否是文件
os.path.isdir(路径)   -   是否是文件夹
"""
count1 = count2 = 0
# os.listdir('./aaa')
for x in os.listdir('./aaa'):
    path = f'./aaa/{x}'
    if os.path.isfile(path):
        count1 += 1
    elif os.path.isdir(path):
        count2 += 1
print(count1, count2)

# 8)把目录和文件名合成一个路径
# os.path.join(文件夹路径,文件名)
url = r'.\aaa'
name = 'demo.py'
result = os.path.join(url, name)
print(result)


# 9)获取文件的扩展名(后缀)
url1 = './demo.py'
result = os.path.splitext(url1)
print(result)           # ('./demo', '.py')

url1 = r'F:\QF\语言基础01\day14常用模块和文件操作\01OS模块.py'
result = os.path.splitext(url1)
print(result)

2、math和random模块

​ 1、熟悉模块 - math、cmath(针对复数的数学模块)

import math, cmath
"""
1)浮点数转整数
math.ceil(浮点数)  -   取较大整数
math.floor(浮点数) -   取较小整数
round(浮点数)      -   四舍五入

2)求绝对值
math.fabs(数字)   -   获取绝对值,结果是浮点数
abs(数据)     -   获取绝对值,结果的类型和指定数据的类型一样
"""
print(int(2.8799))
print(math.ceil(2.6777))        # 3
print(math.ceil(2.001))         # 3
print(math.floor(2.001))        # 2
print(math.floor(2.871))        # 2
print(round(4.5))               # 不是很严格的四舍五入

print(math.fabs(-9))
print(abs(-9))
print(abs(-9.0))

x = 10 + 2j
y = 20 - 3j
print(x + y)            # (30-1j)
print(x * y)            # (206+10j)

​ 2、随机模块

"""
随机整数:random.randint(M,N)    -   产生M到N的随机整数
随机小数:random.random()        -   产生0到1的随机小数
random.randrange(M,N,step)     -    在指定的等差数列中随机获取一个数

2)洗牌
random.shuffle(序列)    -    洗牌(随机打乱序列中元素的顺序;序列必须是可变并且有序的)

3)抽牌
random.choice(序列)              -    从序列中随机获取一个数
random.choices(序列,k=个数)     -       从序列中随机获取指定个数元素(默认情况下元素的权重都一样;放回抽取)
random.choices(序列,权重值序列,k=个数)

random.sample(序列,k=个数)      -       从序列中随机获取指定个数元素(无放回抽取)
"""
import random
# 随机产生10到20的一个整数
print(random.randint(10, 20))

# 随机产生0到1的一个小数
print(random.random())

# 随机产生10到15的一个小数
print(random.random() * 5 + 10)

# 随机产生10到20的一个偶数
print(random.randrange(10, 21, 2))

nums = [10, 20, 30, 40, 50, 60]
random.shuffle(nums)
print(nums)

options = ['特等奖', '一等奖', '二等奖', '三等奖', '再接再厉']
result = random.choices(options, k=1, cum_weights=[1, 3, 10, 100, 1000])
print(result)

# nums = [10, 20, 30, 40, 50, 60]
# result = random.sample(nums, k=2)
# print(result)

# options = ['特等奖', '一等奖', '二等奖', '三等奖', '再接再厉']
# result = random.sample(options, k=2, counts=[1, 3, 10, 100, 1000])
# print(result)

3、时间模块

import time


# 1、time.time()
"""
time.time()    -    获取当前时间,返回时间戳

时间戳    -    用指定时间到1970年1月1日0时0分0秒(格林威治时间)的时间差来表示一个时间,单位是秒
"""

t1 = time.time()
print(t1)           # 1646294619.8872619

# 2)time.localtime()
"""
time.localtime()    -   获取本地当前时间,返回的是结构体时间
time.localtime(时间戳)     -   将时间戳转换成本地时间对应的结构体时间
"""

t2 = time.localtime()
print(t2)

t3 = time.localtime(1646294619.8872619)
print(t3, t3.tm_yday)


# 3、time.mktime()
# time.mktime(结构体时间)    -   将结构体时间转换成时间戳
t4= time.mktime(t3)
print(t4)

# 4、time.strftime()
"""
time.strftime(时间格式字符串,结构体时间)    -   将结构体时间转换成指定格式的字符串时间

    %Y  Year with century as a decimal number.
    %m  Month as a decimal number [01,12].
    %d  Day of the month as a decimal number [01,31].
    %H  Hour (24-hour clock) as a decimal number [00,23].
    %M  Minute as a decimal number [00,59].
    %S  Second as a decimal number [00,61].
    %z  Time zone offset from UTC.
    %a  Locale's abbreviated weekday name.
    %A  Locale's full weekday name.
    %b  Locale's abbreviated month name.
    %B  Locale's full month name.
    %c  Locale's appropriate date and time representation.
    %I  Hour (12-hour clock) as a decimal number [01,12].
    %p  Locale's equivalent of either AM or PM.
"""

t_str2 = time.strftime('%Y年%m月%d日 %H:%M:%S', t3)
print(t_str2)

# 5、time.strptime()
# time.strptime(字符串时间,时间格式)   -   将字符串时间转换成结构体时间
t1 = '1992-3-4'
result = time.strptime(t1, '%Y-%m-%d')
print(f'周{result.tm_wday+1}')

# 6、time.sleep()
# time.sleep(秒) -   让程序暂停指定时间
time.sleep(3)
print('------------')

4、datetime模块

from datetime import datetime,timedelta

# 1、datetime类
# 1)获取当前时间信息
t1= datetime.now()
print(t1)

t2 = datetime.today()
print(t2)

# 2)获取具体的时间信息
print(t1.year)
print(t1.month)
print(t1.day)
print(t1.hour)
print(t1.minute)
print(t1.second)
print(t1.weekday())

# 3)字符串时间转datetime
# datetime时间对象.strftime(时间格式)
result = datetime.strptime('2011年2月4日', '%Y年%m月%d日')
print(result, result.weekday())     # 2011-02-04 00:00:00 4

# 4)将datetime转化成字符串
result = t1.strftime('%Y/%m/%d %a')
print(result)           # 2022/03/03 Thu

# 5)将datetime转换成结构体时间
# 事件对象.timetuple()

import time
result = t1.timetuple()
print(result)
print(time.mktime(result))

# 2、timedelta   -   完成时间加减操作
# 注意:timedelta在完成时间加减操作的时候时间只能以秒、分、时、天或者周为单位
t2 = datetime.strptime('2022-12-31 23:59:40', '%Y-%m-%d %H:%M:%S')


# 1个小时以后的时间
result = t2 + timedelta(hours=1)
print(result)           # 2023-01-01 00:59:40

# 1个小时以前的时间
result = t2 - timedelta(hours=1)
print(result)           # 2022-12-31 22:59:40

# 3天后
result = t2 + timedelta(days=3)
print(result)           # 2023-01-03 23:59:40

# 1小时30分钟前
result = t2 - timedelta(hours=1, minutes=30)
print(result)           # 2022-12-31 22:29:40
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值