python模块(二)

time模块

时间戳格式

复制代码
import time
data_time=time.time()
print(data_time)        #1702546257.544845
print(type(data_time))      #<class 'float'>
#打印自1970年到现在的时间 1702546257.544845
#打印123,每一次停4s
while True:
    print(123)
    time.sleep(4)

datetime格式(时间加减)

复制代码
from datetime import datetime
v1=datetime.now()
print(v1)		#2023-12-14 22:10:29.771616
print(type(v1))		#<class 'datetime.datetime'>

字符串格式(存入到文件)

复制代码
from datetime import datetime
v1=datetime.now()
v1=v1.strftime("%Y-%m-%d %H:%M:%S")
print(v1)
print(type(v1))

练习(字符串格式)

复制代码
#每注册一个用户,创建一个文件
from datetime import datetime
while True:
    name=input("请输入用户名")
    passwd=input("请输入密码")
    #把字符戳事件变成字符串格式
    path_file=datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
    path_file1="{}.txt".format(path_file)
​
    with open(path_file1,mode='a',encoding="utf-8") as f:
        f.write("{}|{}\n".format(name,passwd))

练习(datamate格式)

复制代码
from datetime import datetime
from datetime import timedelta
v1=datetime.now()
v2=v1+timedelta(days=199,hours=1,seconds=1,minutes=12)
print(v1)       #2023-12-14 22:28:49.666447
print(v2)       #2024-06-30 22:40:50.666447

时间格式的相互转换

字符串--->datetime

复制代码
text="2001-09-19"
from datetime import datetime
res=datetime.strptime(text,"%Y-%m-%d")
print(res)
print(type(res))
#2001-09-19 00:00:00
#<class 'datetime.datetime'>

datetime-->字符串

复制代码
from datetime import datetime
res=datetime.now().strftime("%Y-%m-%d")
print(res)
print(type(res))
#2023-12-15
#<class 'str'>
​

datetime-->时间戳

复制代码
from datetime import datetime
v1=datetime.now()
#timestamp将指定时间转换为 Unix 时间戳
v2=v1.timestamp()
print(v2)
print(type(v2))
#1702609788.319188
#<class 'float'>

时间戳-->datetime

复制代码
from datetime import datetime
import time
v1=time.time()
res=datetime.fromtimestamp(v1)
print(res)
print(type(res))
#2023-12-15 11:13:18.866071
#<class 'datetime.datetime'>

考勤时间计算是否大于8小时

复制代码
from datetime import datetime
import time
time1="2022-02-01 9:23"
time2="2022-02-01 19:23"
time3=datetime.strptime(time1,"%Y-%m-%d %H:%M")
time4=datetime.strptime(time2,"%Y-%m-%d %H:%M")
work_time=time4-time3
print(work_time)        #10:00:00   时间戳格式
print(type(work_time))  #<class 'datetime.timedelta'>
print(work_time.seconds/3600)   #10小时
print(type(work_time.seconds/3600)) #<class 'float'>

os模块

复制代码
#拼接目录
import os
path=os.path.join("root","opt","aaa")
print(path)     #root\opt\aaa
folder_path=os.path.dirname(path)   #读取上一级目录
print(folder_path)      #root\opt
​
#涉及文件操作时,最好使用绝对路径
#首先使用__file__和abspath找到文件的上级目录,再通过join拼接得到完整目录,可以在任意电脑运行
import os
base_dir=os.path.dirname(os.path.abspath(__file__))
file_path=os.path.join(base_dir,"mikuai")
print(file_path)    #D:\pycharm\pythonProject3\全栈开发\mikuai
​
#判断文件是否存在
v1=os.path.exists("aaa.txt")
print(v1)
​
#创建文件夹
os.makedirs("xx/xx")    #如果文件已经存在,会报错
#如果文件不存在,则创建文件
file_path="xx/xx"
if not os.path.exists(file_path):
    os.makedirs("xx/xx")

判断是否为文件夹

复制代码
v1=os.path.isdir(file_path)
print(v1)   #时文件夹返回True,否则返回Faulse

删除文件及文件夹

复制代码
import os
os.remove(folder_path) #删除文件
#导入shutil模块
import shutil
base_dir=os.path.dirname(os.path.abspath(__file__))     #获取当前脚本文件所在的目录路径
db_path=os.path.join(base_dir,"xx")     #生成完整的文件夹路径。
shutil.rmtree(db_path)      #删除该文件夹及其内容,包括所有子目录和文件。
​

景区门票预订

复制代码
#新用户和老用户都可以预定和查看历史订单
import os
from datetime import datetime
​
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
DB_PATH = os.path.join(BASE_DIR, 'db')
​
def booking(name, user_file_path):
    park_name = input("景区名字:")
    ticket_num = input("门票数量:")
    current_date = datetime.now().strftime("%Y-%m-%d")
    with open(user_file_path, mode='a',encoding="utf-8") as f:
        f.write(f"姓名:{name} 景区名字:{park_name} 门票数量:{ticket_num} 预定日期:{current_date}\n")
    print("预定成功")
​
def history(name, user_file_path):
    print(f"{name}的历史订单:")
    if not os.path.exists(user_file_path) or os.path.getsize(user_file_path) == 0:
        print("暂无历史订单")
    else:
        with open(user_file_path, 'r') as f:
            for line in f:
                line = line.strip()
                print(line)
​
def run():
    if not os.path.exists(DB_PATH):
        os.makedirs(DB_PATH)
    while True:
        name = input("姓名:")
        user_file_path = os.path.join(DB_PATH, f"{name}.txt")
        #老用户显示欢迎回来,新用户显示欢迎因用户
        if os.path.exists(user_file_path):
            print("欢迎回来")
        else:
            print("欢迎您,新用户")
        #将函数写入字典中
        choice = {"1": booking, "2": history}
        print("1,预定2 查看历史订单")
​
        choice1 = input("序号")
        func=choice.get(choice1)
        if choice1 == "1":
            func(name,user_file_path)
            continue
        elif choice1 == "2":
            func(name,user_file_path)
            continue
        else:
            print("选择无效")
            continue
if __name__ == '__main__':
    run()
相关推荐
海绵宝宝转agent2 小时前
learn-claude-code第1-5章开源学习笔记分享
人工智能·笔记·python·学习
小奇不哭2 小时前
ROS2 单节点,RGB-D 深度相机局部路径提取 + B 样条平滑路径 + YOLOv8 障碍物检测 + 深度测距,用于移动机器人视觉局部循迹。
python·yolov8·ros2·cv2·路径探索循迹
小小龙学IT2 小时前
Python scikit-learn 机器学习库深度解析
python·机器学习·scikit-learn
Wang's Blog3 小时前
Java 项目实战: 外卖平台优化-Nginx配置文件结构与块层级
java·开发语言·nginx
2601_962071573 小时前
类变量和全局变量的查找路径有什么区别?
开发语言·python
卷无止境4 小时前
独立开发者的"富矿地带":哪些垂直领域值得你押注一辈子?
后端·python
福兮说4 小时前
设计稿是 #4A7C6F,页面量出来是 #4B7C6F:HEX、HSL、透明度、canvas 来回转的七个坑
前端·javascript·css·canvas
\光辉岁月/4 小时前
5.java-数组
java·开发语言
Java后端的Ai之路4 小时前
Python进阶探索29_eval内置函数
开发语言·python·探索·eval·内置函数
计算机毕业编程指导师4 小时前
计算机毕设选题推荐:基于Hadoop与Spark的Steam游戏数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·steam游戏