Python3中的os模块

直接放Python3的代码例子

import os 

path = os.path.join("example", "root", "example.txt")
print(path)

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

# 获取根目录
base_dir = os.path.dirname(os.path.abspath(__file__))
print(base_dir)

# 判断路径是否存在
v1 = os.path.exists("是否存在目标文件")
print(v1)

# 创建文件夹
os.makedirs("xx")

# 判断是否是文件夹
v1 = os.path.isdir(file_path)
print(v1)

# 删除文件
os.remove(file_path)

# 删除文件夹
import shutil
dirPath = os.path.join(base_dir, 'db')
shutil.rmtree(dirPath)

# 列举所有的文件路径 (一级目录)
db_path = os.path.join(base_dir, 'example')
for name in os.listdir(db_path):
    print(name)

# 列举所有的文件路径 (多级目录)
for in_path, folder_list, name_list in os.walk(db_path):
    for name in name_list:
        abs_path = os.path.join(in_path, name)
        print(abs_path)


用os来做一个例子

import os 
from datetime import datetime 

baseDir = os.path.dirname(os.path.abspath(__file__))

username = input("用户名:")
password = input("密码:")
line = "用户名:{}|密码:{}\n".format(username, password)

dateTime = datetime.now().strftime("%Y-%m")
folderPath = os.path.join(baseDir, 'db', dateTime)
if not os.path.exists(folderPath):
    os.makedirs(folderPath)

filePath = os.path.join(folderPath, 'register.txt')
with open(filePath, mode='a', encoding='utf-8') as f:
    f.write(line)

运行的结果,会在db文件夹下的datetime文件夹里创建一个register.txt文件,该文件里含有注册信息。


订菜系统demo

import os
from datetime import datetime 

BASE_DIRECTORY = os.path.dirname(os.path.abspath(__file__))
DB_PATH = os.path.join(BASE_DIRECTORY, 'db')

def booking(user_file_path):
    name = input("菜名:")
    count = input("数量:")
    date = datetime.now().strftime("%Y-%m-%d")

    line = "菜名:{}|数量:{}|预定日期:{}\n".format(name, count, date)
    with open(user_file_path, mode="a", encoding="utf-8") as f:
        f.write(line)
    
    print("预定成功")

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

    with open(user_file_path, mode='r', encoding='utf-8') as f:
        for line in f:
            line = line.strip()
            name, count, date = line.split("|")
            message = "{}, {}, {}".format(name, count, date)
            print(message)
    
def run():
    if not os.path.exists(DB_PATH):
        os.makedirs(DB_PATH)
    
    print("欢迎使用订菜系统")
    name = input("请输入姓名:")
    filePath = os.path.join(DB_PATH, "{}.txt".format(name))
    if os.path.exists(filePath):
        print("欢迎回来")
    else:
        print("欢迎使用")
    
    orderMap = {"1": booking, "2": history}
    print("1. 预定    2. 查看历史订单    q/Q: 退出")
    while True:
        choice = input("序号:")
        if choice.upper() == "Q":
            break 
        func = orderMap.get(choice)
        if not func:
            print("无此选项,请重新输入")
            continue 
        func(filePath)

if __name__ == '__main__':
    run() 


给个赞呗~

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值