什么是python的包
包就是文件夹,包中还可以有包,也就是子文件夹
一个个python文件就是模块
__init__.py是每一个python包里必须存在的文件
如何创建一个包
要有一个主题,明确功能,方便使用
层次分明,调用清晰
包的导入
将python中的某个包(或模块),导入到当前的py文件中
import:import 包名
from… import …:导入其他包下的模块
什么是第三方包
其他程序员写好的功能封装成的包(模块)发布到网上,直接使用提高效率
使用pip和easy_install获取第三方包
在第三方包管理,pip使用率最高,在python3.4以上安装的时候就会自带这两种包管理工具
老版python可通过 https://pip/pypa.io/en/stable/installing/
使用方法:pip install 包名
还可以通过github.com搜索python第三方包
datetime模块
日期与实践的结合体-date and time
获取当前时间、时间间隔、将时间对象转成时间字符、将字符串转成时间类型
1.获取当前时间
from datetime import datetime
time = datetime.now()
print(time) #2021-08-05 10:44:48.896369
2.获取时间间隔
使用方法:timeobj = timedelta(days=0,seconds=0,microseconds=0,milliseconds=0,minutes=0,hours=0,week=0)
from datetime import datetime
from datetime import timedelta
one_day = timedelta(days=1) #返回时间间隔的datetime对象
yestoday = datetime.now()-one_day
tomorrow = datetime.now()+one_day
today = datetime.now()
print(today) #2021-08-05 11:02:21.330030
print(yestoday) #2021-08-04 11:02:21.330030
print(tomorrow) #2021-08-06 11:02:21.330030
3.时间对象转字符串
使用strftime(’%Y-%m-%d %H:%M:%S’)转换成字符串,括号里面的格式可以自定义
%Y:对应年份
%m:月份
%d:月中的某一天
%H:一天中的第几个小时,24小时制
%I:一天中的第几个小时,12小时制
%M:当前的第几份
%S:当前分的第几秒,闰年多占2秒
%f:当前秒的第多少毫秒
%a:简化的星期,如星期三 Wed
%A:完整的星期,如星期三 Wednesday
%b:简化的月份,如二月 Feb
%B:完整的月份,如二月 February
%c:本地日期和时间,如Wed Feb 5 10:30:44 2021
%p:显示上午还是下午,AM,PM
%j:一年中的第几天
%U:一年中的星期数
from datetime import datetime
now = datetime.now()
print(now,type(now)) #2021-08-05 11:08:00.682907 <class 'datetime.datetime'>
nowstr = now.strftime('%Y-%m-%d %H:%M:%S')
print(nowstr,type(nowstr)) #2021-08-05 11:08:00 <class 'str'>
4.时间字符串转时间类型
str_time = '2021-08-05 11:08:00'
time_date = datetime.strptime(str_time,'%Y-%m-%d %H:%M:%S')
print(time_date,type(time_date)) #2021-08-05 11:08:00 <class 'datetime.datetime'>
生成时间戳
now = datetime.now()
time3 = datetime.timestamp(now)
print(time3) #1628134959.845823
time模块
时间处理,转换时间格式
1.什么是时间戳
1920年1月1日00时00分00秒至今的总毫秒秒数
2.生成时间戳函数 time
now = datetime.now()
time3 = datetime.timestamp(now) #转成时间戳
print(time3) #1628134959.845823
datetime_obj = datetime.fromtimestamp(1628134959.845823) #时间戳转换成时间对象
print(datetime_obj) #2021-08-05 11:42:39.845823
3.获取本地时间函数localtime
local_time = time.localtime() #不传入参数时,返回当前的时间,填入时间戳,返回对应的时间
local_time1 = time.localtime(1628134055.2697449)
print(local_time) #time.struct_time(tm_year=2021, tm_mon=8, tm_mday=5, tm_hour=11, tm_min=28, tm_sec=10, tm_wday=3, tm_yday=217, tm_isdst=0)
print(local_time1) #time.struct_time(tm_year=2021, tm_mon=8, tm_mday=5, tm_hour=11, tm_min=27, tm_sec=35, tm_wday=3, tm_yday=217, tm_isdst=0)
4.暂停函数sleep
time.sleep(2) 时间休眠2s
5.strptime和strftime
strtime = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
print(strtime,type(strtime)) #2021-08-05 11:39:41 <class 'str'>
times = '2021-08-05 11:36:58'
sttime = time.strptime(times,'%Y-%m-%d %H:%M:%S')
print(sttime,type(sttime)) #time.struct_time(tm_year=2021, tm_mon=8, tm_mday=5, tm_hour=11, tm_min=36, tm_sec=58, tm_wday=3, tm_yday=217, tm_isdst=-1) <class 'time.struct_time'>
os包
getcwd:返回当前的路径
listdir:返回指定路径下所有的文件和文件夹
makedirs:创建多级文件夹
removedirs:删除多级文件夹
rename:给文件或文件夹改名
rmdir:只能删除空文件夹
import os
path = os.getcwd() #/Users/klook/Documents/test
print(path)
listpath = os.listdir('/Users/klook/Documents/test')
print(listpath)
os.makedirs(path+'/test2/test1')
os.removedirs(path+'/test2/test1')
os.rename('functions.py','function.py')
os.makedirs(path+'/xixi')
os.rmdir(path+'/xixi')
os.rmdir('report') #OSError: [Errno 66] Directory not empty: 'report'
os.path模块
exiss:文件或路径是否存在
isdir:是否是路径
isabs:是否是绝对路径
isfile:是否是文件
join:路径字符串合并
split:以最后一层路径为基准切割
if os.path.exists(path+'/test2/test1'):
os.removedirs(path+'/test2/test1')
if not os.path.exists(path+'/test2/test1'):
print('文件不存在')
if os.path.exists(path+'/xixi'):
os.rmdir(path+'/xixi')
print(os.path.isdir(path)) #True
print(os.path.isabs(path)) #True
print(os.path.isfile(path)) #False
new_path = os.path.join(path,'testtest','baozi.py')
print(new_path) #/Users/klook/Documents/test/testtest/baozi.py
date_path = os.path.split(new_path)
print(date_path) #('/Users/klook/Documents/test/testtest', 'baozi.py')
print(date_path[0]) #/Users/klook/Documents/test/testtest
sys模块
modules:py启动时加载的模块
path:返回当前py的环境路径
exit:退出程序,基本代码执行完后会自动退出程序
getdefaultencoding:获取系统编码
platform:获取当前系统平台
version:获取python版本
argv:程序外部获取参数
import sys
modules = sys.modules
print(modules) #{'sys': <module 'sys' (built-in)>, 'builtins': <module 'builtins' (built-in)>.........}
print(sys.path) #['/Users/klook/Documents/test', '/Users/klook/Documents/test', ........]
print(sys.getdefaultencoding()) #utf-8
print(sys.platform) #darwin
print(sys.version) #3.9.6 (default, Jun 29 2021, 05:25:02) [Clang 12.0.5 (clang-1205.0.22.9)]
command = sys.argv[1]
if command == 'modules':
print(sys.modules)
elif command == 'path':
print(sys.path)
elif command == 'platform':
print(sys.platform)
elif command == 'version':
print(sys.version)
else:
print('not command')