【一】文件路径相关的操作
【1】获取当前文件所在的文件夹路径
# os.path.dirname(__file__) import os file_name = os.path.dirname(__file__) print(file_name) # H:\pycharm projects\day\模块学习2
【2】获取当前文件所在的文件路径
# os.path.abspath(__file__) import os file_path = os.path.abspath(__file__) print(file_path) # H:\pycharm projects\day\模块学习2\os模块学习.py
【3】判断当前文件路径是否存在 文件夹/文件
import os file_name = os.path.dirname(__file__) file_path = os.path.abspath(__file__) print(os.path.exists(path=file_name)) # True print(os.path.exists(path=file_path)) # True
【4】拼接文件路径
file_new = os.path.join(file_name,'data') print(os.path.exists(path=file_new)) # Flase
【5】切割文件路径
# os.path.split() import os file_name = os.path.dirname(__file__) file_path = os.path.abspath(__file__) file_split = os.path.split(file_name) print(file_split) file_split = os.path.split(file_path) print(file_split)
【6】直接获取文件夹结尾路径
# os.path.dirname() import os file_name = os.path.dirname(__file__) file_path = os.path.abspath(__file__) file_name_basename = os.path.basename(file_name) print(file_name_basename) file_name_basename2 = os.path.basename(file_path) print(file_name_basename2)
【7】判断当前文件路径是否是文件夹/文件
# os.path.isfile() 是否为文件 # os.path.isdir() 是否为文件夹 import os file_name = os.path.dirname(__file__) file_path = os.path.abspath(__file__) # 判断是否为文件 print(os.path.isfile(file_name)) # False print(os.path.isfile(file_path)) # True # 判断是否为文件夹 print(os.path.isdir(file_name)) # True print(os.path.isdir(file_path)) # False
【8】判断当前路径是否为绝对路径
# os.path.isabs() file_path = os.path.abspath(__file__) path_one = './05os模块.py' print(os.path.isabs(path_one)) # False print(os.path.isabs(file_path)) # True
【9】获取当前文件或目录
(1)active:最后访问时间
os.path.getatime
import time base_dir = os.path.getatime(file_name) print(base_dir) print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(os.path.getatime(file_path))))
(2)create:创建时间
os.path.getctime
import os import time file_name = os.path.dirname(__file__) file_path = os.path.abspath(__file__) print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(os.path.getctime(file_path)))) # 2024-04-19 10:10:28 print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(os.path.getctime(file_name)))) # 2024-04-19 09:19:26
(3)modify:修改时间
os.path.getmtime
import os import time file_name = os.path.dirname(__file__) file_path = os.path.abspath(__file__) print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(os.path.getmtime(file_name)))) # 2024-04-19 19:11:43 print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(os.path.getmtime(file_path)))) # 2024-04-19 19:11:43
【10】获取当前文件的大小
import os import time file_name = os.path.dirname(__file__) file_path = os.path.abspath(__file__) print(os.path.getsize(file_name)) # 4096 print(os.path.getsize(file_path)) # 2226
【二】文件和文件夹操作
【1】主动创建文件夹
os.mkdir()创建文件夹
import os base_dir = os.path.dirname(__file__) # 获取路径,去除最后一个路径 print(base_dir) # H:\pycharm projects\day\模块学习2 img_path = os.path.join(base_dir, 'img') # 添加一个新文件夹路径 print(os.path.exists(img_path)) # Flase 文件夹不存在 if not os.path.exists(img_path): # 判断文件夹是否存在os.mkdir(img_path) # 不存在则创建一个 print(os.path.exists(img_path)) # True
【2】创建多级文件夹
与上面创建单级同理
os.makedirs() 创建多级文件夹
import os base_dir = os.path.dirname(__file__) log_path = os.path.join(base_dir,'log','user_log','user_logs') if not os.path.exists(log_path):os.makedirs(log_path) print(os.path.exists(log_path))
【3】删除单级文件夹
只能删除空文件夹,即使文件夹内有空文件也不行,那不算空
os.rmdir() 删除文件夹
import os base_dir = os.path.dirname(__file__) # 获取文件夹路径,去除最后一条路径 img_path = os.path.join(base_dir, 'img') # 给目标文件img赋值 # H:\pycharm projects\day\模块学习2\img print(os.path.exists(img_path)) # True 输出一下判断它是否存在 os.rmdir(img_path) # 删除文件夹 print(os.path.exists(img_path)) # False 再次输出判断是否存在
【4】删除多级文件夹
删除多级文件夹,路径需要到最里面那一层并且每一个文件夹必须是空的
import os base_dir = os.path.dirname(__file__) file_name = 'log' log_path = os.path.join(file_name, 'user_log') file_trues_path = os.path.join(base_dir,log_path,'user_logs') print(file_trues_path) print(os.path.exists(file_trues_path)) os.removedirs(file_trues_path) print(os.path.exists(file_trues_path))
【5】列出当前文件下的所有文件名
or.listdir() 列出当前文件下所有文件名
import os base_dir = os.path.dirname(__file__) print(os.listdir(base_dir)) # ['datetime学习.py', 'logging.py', 'os模块学习.py', 'time学习.py', '__pycache__']
【6】删除指定文件
os.remove()删除指定路径下的某个文件
import os base_dir = os.path.dirname(__file__) data_path = os.path.join(base_dir, 'logging.py') # 检索出logging.py文件 os.remove(data_path) # 删除文件
【7】给指定文件或者文件夹重命名
给两个绝对路径
一个没改之前的,另一个是想改成后的
os.rename(原来的名字,修改后名字)
import os base_dir = os.path.dirname(__file__) old_path = os.path.join(base_dir,'logging.py') # 修改前的命名 new_path = os.path.join(base_dir,'logging模块学习.py') # 修改后的命名 os.rename(old_path,new_path)
【8】获取当前文件/文件夹的详细信息,元信息
os.stat()
import os base_dir = os.path.dirname(__file__) new_path = os.path.join(base_dir,'time学习.py') print(os.stat(base_dir)) print(os.stat(new_path)) # os.stat_result(st_mode=16895, st_ino=3940649674019133, st_dev=258217787, st_nlink=1, st_uid=0, st_gid=0, st_size=4096, st_atime=1713530028, st_mtime=1713530028, st_ctime=1713489566) # os.stat_result(st_mode=33206, st_ino=2814749767176544, st_dev=258217787, st_nlink=1, st_uid=0, st_gid=0, st_size=1985, st_atime=1713516155, st_mtime=1713515045, st_ctime=1713489582)
【9】获取当前工作目录
os.getcwd()
import os base_dir = os.path.dirname(__file__) print(os.getcwd()) # H:\pycharm projects\day\模块学习2
【10】切换工作目录
import os base_dir = os.path.dirname(__file__) change_path = os.path.join(os.path.dirname(base_dir),'模块学习') os.chdir(change_path) print(os.getcwd()) # H:\pycharm projects\day\模块学习
【11】补充
import os base_dir = os.path.dirname(__file__) # 执行cmd命令 print(os.system('dir')) # ping百度 print(os.popen('ping www.baidu.com')) # 输出操作系统特定的路径分隔符 print(os.sep) # 输出当前平台使用的行终止符 print(os.linesep) # 输出用于分割文件路径的字符串 print(os.pathsep) # 输出字符串指示当前使用平台 print(os.name)
小结
# 【记住的重点】 # os.path.join() 拼接路径 # os.path.dirname(__file__) 获取当前文件所在的文件夹路径 # os.path.abspath(__file__)获取当前文件所在的文件路径 # os.path.exists() 判断路径是否存在 # os.mkdir() 创建单级文件夹 # os.makedirs() 创建多级文件夹 # os.makedirs(path, exist_ok=True) 自动创建不存在的多级文件夹路径