• python模块(二)


    time模块

    时间戳格式

    import time
    data_time=time.time()
    print(data_time)        #1702546257.544845
    print(type(data_time))      #
    #打印自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))		#
    

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

    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
    #

    datetime-->字符串

    from datetime import datetime
    res=datetime.now().strftime("%Y-%m-%d")
    print(res)
    print(type(res))
    #2023-12-15
    #

    datetime-->时间戳

    from datetime import datetime
    v1=datetime.now()
    #timestamp将指定时间转换为 Unix 时间戳
    v2=v1.timestamp()
    print(v2)
    print(type(v2))
    #1702609788.319188
    #

    时间戳-->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
    #

    考勤时间计算是否大于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))  #
    print(work_time.seconds/3600)   #10小时
    print(type(work_time.seconds/3600)) #

    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()

    image-20231224160944564

  • 相关阅读:
    谈谈this和super关键字
    [Django 0-1] Apps模块
    spark-core-源码、Worker启动、sparksubmit提交、Driver启动
    火车头采集器保存任意格式-免费火车头采集发布配置教程
    Linux下C语言实现HTTP文件服务器和TCP协议实现网络数据传输
    Linux C select 的学习
    12讲拆解量化金融时序分析,Kaggle master倾力奉献(中文翻译版)
    第〇篇:深入Docker的世界系列博客介绍
    科技的成就(三十)
    2022的七夕,奉上7个精美的表白代码,同时教大家快速改源码自用
  • 原文地址:https://blog.csdn.net/m0_68858390/article/details/136659193