python基础-os模块
os 模块
功能:与操作系统交互的模块
使用方式:import os
常用的几种功能
-
os.path.dirname(文件名) 用于获取当前文件的所在目录
import os # 获取当前文件的所在目录 file_path = os.path.dirname(__file__) print(file_path) # 获取当前文件的根目录 BASE_PATH = os.path.dirname(file_path) print(BASE_PATH)
注意:项目的根目录,路径相关的值都用常量
-
os.path.join(路径,文件名) 文件路径的拼接,常用来做绝对路径的拼接
import os # 获取当前文件所在的位置 file_path = os.path.dirname(__file__) # 将a.txt的地址拼接成绝对路径 new_path = os.path.join(file_path,"a.txt") print(new_path)
-
os.path.exists(文件/文件夹名) 判断文件或文件夹是否存在,存在返回True,不存在返回False
import os # 获取当前文件所在的位置 file_path = os.path.dirname(__file__) # 将a.txt的地址拼接成绝对路径 new_path = os.path.join(file_path,"a.txt") # 判断这个文件是否存在 res = os.path.exists(new_path) print(f"{new_path}是否存在:{res}")
-
os.path.isdir(文件夹名) 判断文件夹是否存在,存在返回True,不存在返回False
-
os.path.isfile(文件名) 判断文件是否存在,存在返回True,不存在返回False
建议:直接使用 os.path.exists()
-
os.mkdir() 创建一个新文件夹
import os # 获取当前文件所在的位置 file_path = os.path.dirname(__file__) # 拼接一个绝对路径 a_file = os.path.join(file_path, "new_dic") # 新增new_dic 文件夹 file = os.mkdir(a_file)
-
os.rmdir 删除文件夹,只能删除空文件夹
-
os.listdir(文件夹名/绝对路径) 获取某个文件夹中所有文件清单,返回列表list
import os # 获取当前文件所在的位置 file_path = os.path.dirname(__file__) # 获取该文件下所有文件的清单,返回列表 file_list = os.listdir(file_path) print(file_list)
需求:显示文件夹里所有文件的清单,让用户选择需要打开的文件
import os
file_path = r"E:/Oldboy/python3/20191118"
# 获取文件中所有文件的清单,返回一个列表
file_list = os.listdir(file_path)
while True:
# 获取列表中的值,并赋予索引
for index,name in enumerate(file_list):
print(f"编号:{index}\t文件名称:{name}")
# 验证用户输入的文件编号的合法性
choice = input("请输入要打开的文件编号:")
if not choice.isdigit():
print("文件编号必须是数字")
continue
choice = int(choice)
if choice not in range(len(file_list)):
print("文件编号不在范围内")
continue
# 获取用户需要打开的文件
file_path = file_list[choice]
# 打开文件,读取内容并返回
with open(file_path,"r",encoding="utf-8") as f:
data = f.read()
print(data)