python-day10-内置模块

本文深入探讨Python内置模块的实用案例,包括os模块用于文件路径操作、文件夹创建与删除、文件读写;sys模块展示如何访问命令行参数;shutil模块实现文件及文件夹的复制、重命名与压缩。通过具体应用场景如景区订票系统的开发,展现模块的强大功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*os模块

import os
#路径的拼接
path=os.path.join("x1","x2","x3")
print(path)  #"x1\x2\x3"

#获取而文件夹上级文件目录
folder_path=os.path.dirname(path)
print(folder_path)

#获取当前文件所在目录
os.path.abspath(__file__)

#获取当前所在目录的上级目录
base_path=os.path.dirnameos(path.abspath(__file__))
#绝对路劲(file,abspath,join,dirname)
file_path=os.path.join(base_path,"a.txt")

#判断路径是否存在
os.path.exists("文件路径")
注意:读取文件时,如果文件不存在会报错

#创建文件夹
folder_path="xx/xx/xx"
if not os.path.exists(folder_path):
    os.makedirs(folder_path)
用户注册,获取当年年月
import os
from datetime import datetime
#当前项目根目录
base_dir=os.path.dirname(os.path.abspath(__file__))

#注册
user=input("用户名:")
pwd=input("密码")
line="{}|{}\n".format(user,pwd)

#拼接文件路径
data_str=datetime.now().strftime("%Y-%m-%d %H-%M-%S")

#判断文件夹是否存在,不存在创建
folder_path=os.path.join(base_dir,"log",data_str)
if not os.path.exists(folder_path):
       os.makedirs(folder_path)
#拼接文件路径
file_path=os.path.join(folder_path,'1.txt')
#写文件时,一定要保证文件夹存在,文件可以不存在
with open(file_path,mode='a',encoding="utf-8") as f:
    f.write(line)

判断路径是否是文件夹
base_dir=os.path.dirname(os.path.abspath(__file__))
data_str=datetime.now().strftime("%Y-%m-%d %H-%M-%S")
folder_path=os.path.join(base_dir,"log",data_str)
file_path=os.path.join(folder_path,'1.txt')

v1=os.path.isdir(folder_path)
print(v1)
v2=os.path.isdir(file_path)
print(v2)
删除文件夹
import shutil
shutil.remtree(file_path)

删除文件
os.remove(file_path)  
查看目录下所有文件和文件夹(一级目录)
import os
base_dir=os.path.dirname(os.path.abspath(__file__))
folder_path=os.path.join(base_dir,"db")

form name in os.listdir(db_path):
  print(name)
  file_path=os.path.join(da_path,name)
  print(file_path)
  
 
  os.walk(db_path)#得到一个元组,第一个元素是当前文件夹得上级文件路径,第二个元素是当前文件夹下一个级所有的文件夹,第三个元素是当前文件夹所有的文件
for in_path,folder_path,name_list in os.walk(db_path):
   for name in name_list:
   abs_path=os.path.join(in_path,name)
   print(abs_path)#打印当前文件夹下所有的文件(包含文件夹下文件夹内的文件)
-景区订票系统:
    -启动项目时检测当前项目目录下是否有db项目。如果没有就创建。
    -提示输入用户名,进入系统,监测db/用户名.txt
        -如果存在就是老用户
        -如果不存在就是新用户
    -订票
        -输入景区名字、数量
        -名字、数量、预定时间写入到db/用户名.txt中
    -查看历史订单
        -读取db/用户名.txt的内容逐行输出

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):
    address=input("景区名字:")
    count=input("数量:")
    date_str=datetime.now().strftime("%Y-%m-%d")

    line="{}|{}|{}\n".format(address,count,date_str)
    with open(user_file_path,'a',encoding='utf-8')as f:
        f.write(line)
    print("预定成功")

def history(name,user_file_path):
    if not os.path.exists(user_file_path):
        print("无历史订单")
        return 

    with open(user_file_path, 'r', encoding='utf-8') as f:
        for line in f:
            add,count,date= line.split("|")
            message="景区:{},数量:{},预定日期:{}".format(add,count,date)
            print(message)

def run():
    # 文件夹初始化
    if not os.path.exists(DB_PATH):
        os.makedirs(DB_PATH)
    pass
    # 输入姓名,判断新老用户
    name = input("请输入姓名:")
    user_file_path=os.path.join(DB_PATH,"{}.txt".format(name))
    if os.path.exists(user_file_path):
        print("欢迎回来")
    else:
        print("欢迎使用")

    # 选择1预定 2查看历史订单
    func_dict={"1":booking,"2":history}
    while 1:
        choice = input("选择1预定 2查看历史订单:")
        if choice.upper()=="Q":
            break
        func=func_dict.get(choice)
        if not func:
            print("序号错误,请重新输入")
            continue
        func(name,user_file_path)

if __name__=='__main__':
    run()

*sys模块

import sys

#导入模块时,去哪里找
print(sys.path)

#sys.argv运行脚本时传入的参数
print(sys.arge)
name=sys.argv[1]
age=sys.argv[2]
token=sys.argv[3]
data_str="{}-{}".format(name,token)
print(data_str)

*shutil模块

删除文件夹
import shutil
shutil.remtree(file_path)
重命名文件和文件夹
import shutil
shutil.move("db.txt","app.txt")

shutil.move("yy","xx")
拷贝文件和文件夹
import shutil
shutil.copy("yy/aa1.txt","xx/aa2.txt")

shutil.copytree("yy","xx")
压缩文件
import shutil

shutil.make_archive(base_name="v1",format="zip",root_dir="yy")#
#解压缩
shutil.uppack_archive("v1.zip",extract_dir="xxxxx"format="zip")#

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值