python24-内置模块-datetime-os-sys-json
今日学习
datetime 模块
os 模块
sys模块
json模块
json模块的实参
datetime 模块
date :年月日
datetime:年月日 时分秒
timedelta:时间差值计算
import datetime
res = datetime.datetime.now() #现在时间
print(res)
--------执行结果------------------------
# 2022-07-15 16:12:51.981066
res = datetime.datetime.today() #今天时间
print(res)
# 2022-07-15 16:12:51.981066
--------执行结果------------------------
print(res.year) #时间模块的内置参数:只打印年份
2022
print(res.month) #时间模块的内置参数:纸打印月份
7
print(res.weekday()) #时间模块的内置参数:从0开始算,今天周五,打印4
4
print(res.isoweekday()) #时间模块的内置参数:1~7天,今天周五,打印5
5
---------------timedelta例子-------------------------
tl = datetime.timedelta(days=3) #获取一个三天的时间点
print(tl + res) #打印今天时间 + 3天
# 2022-07-18 16:13:57.113370
------------指定时间----------------------
#指定时间 不常用,用不到
c = datetime.datetime(2017,12,3,7,22)
print(c)
2017-12-03 07:22:00
OS模块【重要】
os模块主要是跟当前程序所在的操作系统打交道
内置功能 | 作用 |
---|---|
os.mkdir() | 创建单级目录 |
os.mkdirs() | 创建多级别目录 |
os.rmdir() | 删除单级别目录【有数据的目录无法删除】 |
os.remove() | 删除文件 |
os.removedirs() | 删除目录和递归目录【由内而外递归删除目录,遇到有数据目录停止执行】 |
os.rename() | 重命名文件 |
os.renames() | 重命名文件夹 【文件夹内有数据文件也可以进行目录重命名】 |
os.listdir() | 列举指定路径下的文件名称(文件和目录) |
os.getcwd() | 获取当前路径 |
os.chdir() | 切换路径 |
os.path.abspath(双下file)) | 当前文件的绝对路径 |
os.path.dirname(双下file) | 当前目录的绝对路径 |
os.path.exists() | 判断文件是否存在 返回布尔值 |
os.path.isdir() | 判断是否为目录 返回布尔值 |
os.path.isfile() | 判断是否为文件 返回布尔值 |
os.path.join() | 文件路径拼接 【推荐使用】不推荐 + |
os.path.getsize | 获取文件大小 |
import os #调用os模块
#创建
os.mkdir(r'aaa') #创建单级目录
-------------------------------------------
#删除
os.rmdir(r'aaa') #删除单级别目录
------------------------------------------
os.remove('ccc\__init__.py') #删除文件
----------------------------------------------------------
os.remove('ccc\ddd\__init__.py') #删除ccc文件下的ddd目录的文件
-------------------------------------------------------
os.remove('ccc/ddd/eee/a.py') #删除目录下的a.py文件
--------------------------------------------------
os.remove(r'ccc\ddd\eee\b.py') #删除目录下的b.py文件 r转义符号,意思是不转义
---------------------------------------------------
os.removedirs(r'ccc') # 针对有数据的目录也无法删除
----------------------------------------------
os.removedirs(r'bbb\ccc\ddd') # 由内而外递归删除空目录 直到有数据的目录为止
=================== 【列举】和【重命名】 ============================
print(os.listdir()) #列举指定路径下的文件名称(文件,目录)
--------------执行结果-------------------------
['.idea', 'ccc', 'mmm', '__pycache__']
#重命名
os.rename(r'mmm\a.py', r'mmm\b.py')
==================【获取当前路径】和【切换路径】===========================
#获取当前工路径
print(os.getcwd())
------执行结果---------
D:\PycharmProjects\01
#切换路径
os.chdir(r'\ccc\eee')
print(os.getcwd()) #查看
=================【获取当前文件路径】和【当前目录路径】===============================
#6 与程序启动文件相关
print(os.path.abspath(__file__)) #获取当前文件的路径 #可以不记
--------------执行结果-------------------------------------
# D:\PycharmProjects\01\mmm\OS_Module.py
# print(os.path.dirname(__file__)) # 获取当前文件所在的目录路径(必须得记)
-------------执行结果-----------------
D:\PycharmProjects\01\mmm
============================【判断文件】和【判断目录】===================================
#判断返回布尔值
#判断文件
# print(os.path.exists('ATM'))
# False
# print(os.path.exists(r'aaa'))
# False
# 判断目录
# print(os.path.exists('01 OS_Module.py'))
# print(os.path.isdir('mmm')) #mmm是我创建的目录
# True
# print(os.path.isfile('')) # 路径是否是文件
# False
==========================【拼接路径 join方法】================================
#拼接路径
relative_path = 'a.py'
absolute_path = r'D:\PycharmProjects\01\ccc\ddd\eee'
print( absolute_path + relative_path ) #"""涉及到路径拼接 不要使用加号 建议使用os模块的里面join方法"""
res = os.path.join(absolute_path,relative_path)
print(res)
------------执行结果---------------------------
D:\PycharmProjects\01\ccc\ddd\eee\a.py
ps: join方法可以自动识别当前所在的操作系统并自动切换正确的分隔符
windows用\ mac用 /
=============================【获取文件大小】===============================
#获取文件大小 bytes
print(os.getcwd())
print(os.path.getsize(r'mmm\OS_Module.py'))
2011
sys模块
sys模块主要是跟python解释器打交道
import sys
# print(sys.path) # 结果是列表
# print(sys.version) # 查看解释器信息
# print(sys.platform) # 查看当前平台
-----------------------【sys.argv适用命令行终端起作用】----------------------------------
res = sys.argv
'''需求 命令行执行当前文件必须要提供用户名和密码 否则不准执行'''
if len(res) == 3:
username = res[1]
password = res[2]
if username == 'jason' and password == '123':
print('您可以正在执行该文件')
else:
print('用户名或密码错误')
else:
print('请填写用户名和密码 二者不可或缺')
json模块【重要】
-
重要特点
json格式的数据有一个非常明显的特征
首先肯定是字符串 其次引号是标志性的双引号
json模块也称之为序列化模块
json模块是不同编程语言之间数据交互必备的模块(处理措施)
-----------------------------------------------------------------
json格式的数据应该是什么
数据基于网络传输肯定是二进制 那么在python中只有字符串可以调用encode方法转成二进制数据 所以json格式的数据也属于字符串
----------------------------------------------------------
json格式的数据有一个非常明显的特征
首先肯定是字符串 其次引号是标志性的双引号
-----------------------------------------------------------
dumps() 将其他数据类型转换成json格式字符串
loads() 将json格式字符串转化成对应的数据类型
dump() 将其他数据数据以json格式字符串写入文件
load() 将文件中json格式字符串读取出来并转换成对应的数据类型
--------------例子----------------------------
d = {'name': 'jason', 'pwd': 123}
# 需求:将上述字典保存到文件中 并且将来读取出来之后还是字典
--------------------------------------------------
#jason模块,序列化模块
# import json
z = {'name': 'jason', 'pwd': 123}
import json
re = json.dumps(z)
print(re,type(re))
------------执行结果--------------------------
{"name": "jason", "pwd": 123} <class 'str'>
======================反序列化==============================
d = {'name': 'jason', 'pwd': 123}
import json
res = json.dumps(d) # 序列化
res1 = json.loads(res) # 反序列化
print(res1,type(res1))
---------执行结果------------------------
{'name': 'jason', 'pwd': 123} <class 'dict'>