*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")#