os模块
os是与操作系统交互的模块 多用于文件处理
import os
'''
项目的根目录,路径相关的值都用常量(大写)
'''
#获取当前文件的根目录
#先获取当前文件的上一级目录
DAY15_PATH = os.path.dirname(__file__)
print(DAY15_PATH)
>>> D:/xm/daily practice/day15
#获取根目录
BASE_PATH = os.path.dirname(DAY15_PATH)
print(BASE_PATH)
>>>D:/xm/daily practice
# 路径的拼接,拼接文件“绝对路径”
TEST_PATH = os.path.join(DAY15_PATH, 'nmb.txt')
print(TEST_PATH)
>>>D:/xm/daily practice/day15
mb.txt
# 判断“文件/文件夹”是否存在:若文件存在返回True,若不存在返回False
print(os.path.exists(DAY15_PATH))
print(os.path.exists('lzn.txt'))
>>> True
False
# 判断“文件夹”是否存在
print(os.path.isdir(DAY15_PATH))
print(os.path.isdir('nmb.txt'))
>>> True
False
# 创建文件夹
NEW_PATH = os.path.join(DAY15_PATH, 'lzn')
os.mkdir(NEW_PATH)
#删除文件夹 : 只能删除空文件夹
os.rmdir(NEW_PATH)
# 获取某个文件夹中所有文件的名字
name_list = os.listdir(r'D:/xm/daily practice/day15')
print(name_list) # 输出列表
res = enumerate(name_list)
print(type(res.__next__()))
print(res.__next__())
print(res.__next__())
print(res.__next__())
#需求: 让客户选择文件
name_list = os.listdir(r'D:/xm/daily practice/day15')
print(name_list)
while True:
# 打印所有文件
for index,name in enumerate(name_list):
print(f'编号{index} 文件名{name}')
choice = input('输入你想看的文件编号').strip()
# 2.限制用户必须输入数字,数字的范围必须在编号内
# 若不是数字,则重新选择
if not choice.isdigit():
print('你懂什么是编号吗?')
continue
#若是数字 往下判断是否在范围内
choice = int(choice)
#若不在范围内,重新选择
if choice not in range(len(name_list)):
print('你眼睛好使吗?')
continue
file_name = name_list[choice]
file_path = os.path.join(r'D:/xm/daily practice/day15',file_name)
print(file_path)
with open(file_path, 'r', encoding='utf-8')as f:
print(f.read())
break