python基础之常用模块

1.os模块

python的os模块封装了操作系统的文件和目录的操作,比如文件的增删改查以及获取文件的路径、大小等。

  • os常用的方法:
  1. os.getcwd():获取当前的目录路径
  2. os.listdir(path):返回指定路径下的文件和文件夹,如果不指定路径则默认当前路径
  3. os.mkdir(文件夹名称):创建一个新的文件夹
  4. os.rmdir(文件夹路径):删除文件夹
  5. os.rename(oldName, newName):修改文件的名字
  6. os.path.join(path1,path2):合并路径
  7. os.path.split(path):把路径分割为绝对路径和相对路径,返回一个元组
  8. os.path.exists(path):查看指定的文件夹是否存在
  9. os.path.isdir(path):判断文件是否是文件夹
  10. os.path.isfile(path):判断文件是否为文件
  11. os.path.basename(path):只获取文件名
  12. os.path.getsize(path):获取文件的大小
import os
#获取当前文件
print(os.getcwd())
#获取文件列表
print(os.listdir())
#创建一个文件夹
os.mkdir('testtest')
#删除文件夹
os.rmdir('testtest')
#重命名文件
os.rename('a.txt', 'b.txt')
#合并路径
path1 = '/data/code/'
for i in range(5):
    path = os.path.join(path1+f'{i}.png')
    print(path)
#切割路径
path = '/data/code/test/images/gcc'
print(os.path.split(path))
#查看文件夹是否存在
print(os.path.exists('./test'))
#查看文件名称
print(os.path.basename('/data/code/hello.py'))
#查看是否为文件夹
print(os.path.isdir('../test_py'))
#查看是否为文件
print(os.path.isfile('../test_py'))
#获取文件大小
print(os.path.getsize('b.txt'))

2.math模块

math模块是python的内置数学函数的库,支持整数和浮点数的运算。

  • math库中的两个常量
  1. math.pi:圆周率
  2. math.e:自然常数e
  • math中的常用的运算函数
  1. math.ceil(num):向上取整
  2. math.floor(num):向下取整
  3. math.fabs(num):取绝对值
  4. math.sqt(num):开平方根
  5. math.power(num, p):幂次方运算
import math
#圆周率
print(math.pi) #3.141592653589793
#自然常数
print(math.e) #2.718281828459045
#向上取整
print(math.ceil(1.7)) # 2
print(math.ceil(-1.7)) # -1
#向下取整
print(math.floor(1.7)) #1
print(math.floor(-1.7)) #-2
#取绝对值
print(math.fabs(-1.7)) #1.7
#开平方根
print(math.sqrt(4)) #2.0
#幂次方运算
print(math.pow(2, 3)) #8.0

3.random模块

random库中包含了许多与随机数相关的方法,比如生成随机的整数、浮点数,随机选取序列中元素等

  • random中常用的方法
  1. random.random():随机生成0-1之间的浮点数
  2. random.randomint(num1, num2):生成num1-num2之间的随机整数
  3. random.uniform(num1, num2):生成num1-num2之间的随机浮点数
  4. random.shuffle(seq):随机打乱序列
  5. random.chioce(seq):随机选取序列中的元素
import random
#生成0-1随机的浮点数
print(random.random()) 
#生成指定范围内随机的浮点数
print(random.uniform(1, 150))
#生成指定范围内随机的整数
print(random.randint(1, 150))
#打乱序列
seq = list(range(0, 10, 2))
print('---打乱前---')
print(seq) # [0, 2, 4, 6, 8]
random.shuffle(seq)
print('---打乱后---')
print(seq) #[2, 4, 0, 6, 8]
#随机选择序列中的元素
print(random.choice(seq)) #2

4.日期和时间

  • 时间日期常用的格式化符号
符号含义
%y两位数的年份(00-99)
%Y四位数的年份(0000-9999)
%m月份(01-12)
%d月内的一天(0-31)
%H24小时制小时数(0-23)
%M分钟数(00-59)
%I12小时制小时数(01-12)
%S秒(00-59)
%Z当前时区的名称
%B本地完整的月份名称
%b本地简化的月份名称
%A本地完整的星期名称
%a本地简化的星期名称

  • 时间元组

python中用九组数字处理时间,分别是4位数的年份,月份,日,小时,分钟,秒,星期几,一年中的第几天,夏令时。

序号属性

0

tm_year2008
1

tm_mon

1-12
2tm_mday1-31
3

tm_hour

0-23
4tm_min0-59
5tm_sec0-61
6tm_wday0-6(0是星期一)
7tm_yday1-366
8tm_isdst-1 0 1(-1是决定是否为夏令时旗帜)

4.1time模块

  • time常用函数
  1. time.time():返回当前时间的时间戳,返回的是浮点数
  2. time.gmtime(时间戳):将时间戳转换成UTC(0时区)的struct_time对象
  3. time.localtime(时间戳):将时间戳转换成本地时间,如果不提供时间戳,则默认是当前时间,返回时间元组struct_time对象
  4. time.mktime(时间元组):与localtime函数相反,把时间元组转换成时间戳
  5. time.asctime(时间元组):asc函数接受时间元组并且返回可读形式为"Tue Jul 17 17:03:01 2018"(2018年7月17日周二17时03分01秒)
  6. time.ctime(时间戳):该函数能把一个时间戳转换成time.asctime()的形式
  7. time.sleep(秒数):推迟调用线程的时间
  8. time.strftime(format, 时间元组):接收一个时间元组,并返回可读字符串表示当地时间,格式由参数format决定
  9. time.strptime(str, format):把指定格式的时间字符串解析为时间元组
import time
t = 0
time_struct = (2017, 7, 17, 17, 3, 1, 1, 1, 0)
#返回时间戳time.time
print(time.time()) #1662733079.8440037
#时间戳转成本地时间的时间元组time.localtime
print(time.localtime(t)) # time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
#时间戳转成UTC(0时区)的时间元组time.gmtime
print(time.gmtime(t)) #time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
#把时间元组转换成时间戳time.localtime
print(time.mktime(time_struct))# 1500282181.0
#把时间元组转换成可读的日期time.asctime
print(time.asctime(time_struct))#Tue Jul 17 17:03:01 2017
#把时间戳转换成可读形式的日期time.ctime
print(time.ctime(t))#Thu Jan  1 08:00:00 1970
#推迟线程执行的时间time.sleep
time.sleep(1)
#把时间元组转换成可读形式的字符串time.strftime
print(time.strftime('%b %d %Y %H:%M:%S', time_struct)) #Jul 17 2017 17:03:01
#把可读的时间字符串转换成时间元组
print(time.strptime('Jul 17 2017 17:03:01', '%b %d %Y %H:%M:%S')) #time.struct_time(tm_year=2017, tm_mon=7, tm_mday=17, tm_hour=17, tm_min=3, tm_sec=1, tm_wday=0, tm_yday=198, tm_isdst=-1)

4.2datetime模块

datetime模块包含了日期和时间的所有信息,它支持从0001年到9999年之间的日期,datetime模块定义了两个常量:datetime.MINYEAR和datetime.MAXYEAR,分别代表最大小年份1和最大年份9999。

4.2.1date对象

date对象表示日历中的一个日期,包含年月日,date对象的构造函数包含三个参数:year,month和day。

  • date对象常用的方法
  1. date.today():返回当天的日期
  2. date.weekday(dt):返回星期几(0-6)
  3. date.isoweekday(dt):和weekday相似,返回星期几(1-7)
  4. date.isoformate(dt):返回日期的iso格式,YYYY-MM-DD
  5. d.strftime(format):格式化时间
from datetime import date
d = date(2018, 7, 1)
#today
print(date.today()) #2022-09-09
#weekday
print(date.weekday(dt)) #6
#isoweekday
print(date.isoweekday(dt)) #7
#isoformate
print(date.isoformat(dt)) #2018-07-01
#strftime
print(d.strftime("%y-%b-%d")) #18-Jul-01

4.2.2time对象

time对象表示一天中的(本地)时间,与任何特定日期无关,time构造函数接收时,分,秒,毫秒,时区和信息等参数,含有两个常量min和max,分别代表最小值00:00:00和最大值23:59:59.999999

  • time对象常用的方法
  1. t.strftime(format):格式化时间
  2. t.isoformat():返回日期的iso格式,HH:MM:SS
from datetime import time
t = time(hour=16, second=7, microsecond=123)
#strftime
print(t.strftime("%H:%M:%S")) #16:00:07
print(t.strftime("%p %I:%M:%S:%f")) #PM 04:00:07:000123
#isoformate
print(t.isoformat()) #16:00:07.000123

4.2.3datetime对象

datetime是date和time的结合体,包含了date和time的所有信息,最常用的就是datetime

  • datetime常用的方法:
  1. datetime.today():返回当前的日期和时间
  2. datetime.now(tzinfo):如果不传tzinfo则会today相同
  3. datetime.utcnow():返回utc时间的datetime对象
  4. date.fromtimestamp():根据时间戳生成datetime对象
  5. datetime.combine(date,time):根据date和time创建一个对象
  6. dt.strftime(format):格式化时间
from datetime import datetime, date, time
#年月日时必选参数其余均为可选参数
dt = datetime(year=2018, month=7, day=1, hour=16, second=10)
#today
print(datetime.today()) #2022-09-09 23:14:48.447153
#now
print(datetime.now()) #2022-09-09 23:14:48.537026
#utcnow
print(datetime.utcnow()) #2022-09-09 15:14:48.537026
#fromtimestamp
print(datetime.fromtimestamp(0))# 1970-01-01 08:00:00
#date方法获取date和time对象
print(dt.date()) #2018-07-01
print(dt.time()) #16:00:10
#combind
d = date(year=2018, month=7, day=1)
t = time(hour=16, second=10)
print(datetime.combine(d, t)) #2018-07-01 16:00:10
#strftime
print(dt.strftime("%Y-%m-%d %H:%M:%S")) #2018-07-01 16:00:10
print(dt.strftime("%y-%m-%d %a %I:%M:%S")) #8-07-01 Sun 04:00:10

4.2.4timedelta对象

timedelta表示的是两个日期或时间的差,时间包括日期、秒、毫秒、分钟、小时和星期,所有属性都是可选的并且默认为0

from datetime import timedelta, datetime
dt1 = datetime(2018, 7, 1, 16, 15, 10)
dt2 = dt1+timedelta(weeks=-2)
print(dt1) #2018-07-01 16:15:10
print(dt2) #2018-06-17 16:15:10
print(dt1 - dt2) #14 days, 0:00:00
print(dt2 - dt1) #-14 days, 0:00:00

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值