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'>

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号