os模块
【一】文件操作
(1)导入模块
import os
(2)获取当前文件路径(abspath)
- abspath
file_path = os.path.abspath(__file__)
(3)获取当前文件所在文件夹的路径(dirname)
- dirname
base_dir = os.path.dirname(__file__)
(4)判断当前路径是否存在(exists)
# 指定一个存在的路径
path_one = 'D:\2023propygo\ATM.py'
base_dir = os.path.exists(path_one)
print(base_dir)# True
# 指定一个不存在的路径
path_one = 'D:\2023propygo'
base_dir = os.path.exists(path_one)
print(base_dir)# False
(5)拼接路径(join)
- join后面可以跟多个路径
path=os.path.join(r'D:\2023propygo\day\day15\day15','无参装饰器练习.py')
base_dir = os.path.dirname(__file__)
path= os.path.join(base_dir,'img')
(6)切割路径(split)
import os
# 获取当前文件所在路径
BASE_DIR = os.path.abspath(__file__)
# 对路径进行切割 --- 切割成元组
file_path_list = os.path.split(BASE_DIR)
print(file_path_list) # ('D:\\2023propygo', 'test.py')
(7)获取结尾文件/文件夹名(basename)
import os
BASE_DIR = os.path.dirname(__file__)
file_path = os.path.join(BASE_DIR, 'img')
print(file_path) # D:\2023propygo\img
# 返回path最后的文件名
# 如何 path以/或\结尾,那么就会返回空值。
# 即 os.path.split(path) 的第二个元素
a = os.path.basename(file_path)
print(a) # img
# 获取当前文件路径
file_path_one = os.path.abspath(__file__)
print(file_path_one) # D:\2023propygo\test1.py
print(os.path.basename(file_path_one)) # test1.py
(8)判断当前路径是否是文件(isfile)
import os
BASE_DIR = os.path.dirname(__file__)
print(BASE_DIR) # D:\2023propygo
file_path = os.path.abspath(__file__)
print(file_path) # D:\2023propygo\test1.py
is_true_one = os.path.isfile(BASE_DIR)
print(is_true_one) # False
is_true_two = os.path.isfile(file_path)
print(is_true_two) # True
(9)判断当前路径是否为绝对路径(isabs)
import os
file_path_one = r'D:\2023propygo\ATM.py'
file_path_two = r'test.py'
is_true_one = os.path.isabs(file_path_one)
print(is_true_one) # True
is_true_two = os.path.isabs(file_path_two)
print(is_true_two) # False
(10)判断当前文件目录是否存在(isdir)
import os
file_path_one = r'D:\2023propygo\day\test.py'
file_path_two = r'test.py'
is_true_one = os.path.isdir(file_path_one)
print(is_true_one) # False
is_true_two = os.path.isdir(file_path_two)
print(is_true_two) # False
(11)获取当前文件或目录的最后访问时间(getatime)
import os, time
BASE_DIR = os.path.dirname(__file__)
file_path = os.path.abspath(__file__)
file_base_time = os.path.getatime(BASE_DIR)
print(file_base_time) # 1700898377.9336035
print(time.strftime("%Y-%m-%d %H-%M-%S", time.localtime(file_base_time)))
# 2023-11-25 15-46-17
file_time = os.path.getatime(file_path)
print(time.strftime("%Y-%m-%d %H-%M-%S", time.localtime(file_time)))
# 2023-11-25 15-46-17
(12)获取当前文件或者目录的创建时间(getctime)
import os, time
BASE_DIR = os.path.dirname(__file__)
file_path = os.path.abspath(__file__)
file_base_time = os.path.getctime(BASE_DIR)
print(file_base_time) # 1700831862.5625432
print(time.strftime("%Y-%m-%d %H-%M-%S", time.localtime(file_base_time)))
# 2023-11-24 21-17-42
file_time = os.path.getctime(file_path)
print(time.strftime("%Y-%m-%d %H-%M-%S", time.localtime(file_time)))
# 2023-11-25 14-41-54
(13)返回当前文件或路径的最后修改时间(getmtime)
import os, time
BASE_DIR = os.path.dirname(__file__)
file_path = os.path.abspath(__file__)
file_base_time = os.path.getmtime(BASE_DIR)
print(file_base_time) # 1700831862.5625432
print(time.strftime("%Y-%m-%d %H-%M-%S", time.localtime(file_base_time)))
# 2023-11-25 15-50-19
file_time = os.path.getmtime(file_path)
print(time.strftime("%Y-%m-%d %H-%M-%S", time.localtime(file_time)))
# 2023-11-25 15-50-19
(14)返回当前文件的大小(getsize)
import os
BASE_DIR = os.path.dirname(__file__)
file_path = os.path.abspath(__file__)
file_base_time = os.path.getsize(BASE_DIR)
print(file_base_time) # 0
file_time = os.path.getsize(file_path)
print(file_time) # 4969
【二】路径操作
(1)创建单级文件夹(mkdir)
import os
BASE_DIR = os.path.dirname(__file__)
print(BASE_DIR) # D:\2023propygo\day
file_name = 'img'
file_path = os.path.join(BASE_DIR, file_name)
print(file_path) # D:\2023propygo\day\img
# 判断当前是否存在 file_path 指定路径
if not os.path.exists(file_path):
# 不存在则新建 路径 (只能创建文件夹)
os.mkdir(file_path)
print(f"{file_path} :>>> 已创建") # D:\2023propygo\day\img :>>> 已创建
print(f"当前路径 :>>>> {os.path.exists(file_path)}") # 当前路径 :>>>> True
(2)创建多级文件夹(makedirs)
import os
BASE_DIR = os.path.dirname(__file__)
print(BASE_DIR) # D:\2023propygo\day
file_path = os.path.join(BASE_DIR, 'img', '4k')
print(file_path) # D:\2023propygo\img\4k
if not os.path.exists(file_path):
# 多级文件夹创建使用 makedirs
os.makedirs(file_path)
print(f"{file_path} :>>> 已创建") # D:\2023propygo\img\4k :>>> 已创建
print(f"当前路径 :>>>> {os.path.exists(file_path)}") # 当前路径 :>>>> True
(3)删除单级文件夹(rmdir)
import os
BASE_DIR = os.path.dirname(__file__)
file_name = 'img'
file_path = os.path.join(file_name, '4k')
print(file_path)
file_true_path = os.path.join(BASE_DIR, file_path)
print(os.path.exists(file_true_path))
# 如果文件路径存在会从最后开始删,只删一级
os.rmdir(file_path)
print(os.path.exists(file_true_path))
(4)删除多级文件夹
- 前提是文件夹里没有文件
import os
BASE_DIR = os.path.dirname(__file__)
file_path = os.path.join(BASE_DIR,'img','4k')
print(file_path)
print(os.path.exists(file_path))
os.removedirs(file_path)
print(os.path.exists(file_path))
(5)列出当前文件夹下的所有文件及文件夹(listdir)
- 只能列出一级文件夹,看不到别的文件夹内的东西
import os
BASE_DIR = os.path.dirname(__file__)
file_list = os.listdir(BASE_DIR)
print(file_list)
# ['ATM', 'ATM.py', 'ATM1','test.py', 'test1.py']
(6)删除指定文件(remove)
import os
BASE_DIR = os.path.dirname(__file__)
file_list_one = os.listdir(BASE_DIR)
print(file_list_one)
# ['ATM', 'ATM.py', 'ATM1','test.py', 'test1.py']
file_path = os.path.join(BASE_DIR, 'test.py')
os.remove(file_path)
file_list_two = os.listdir(BASE_DIR)
print(file_list_two)
# ['ATM', 'ATM.py', 'ATM1','test1.py']
(7)重命名文件夹/文件(rename)
import os
BASE_DIR = os.path.dirname(__file__)
file_list_one = os.listdir(BASE_DIR)
print(file_list_one)
# ['ATM', 'ATM.py', 'ATM1','test.py', 'img']
file_path = os.path.join(BASE_DIR, 'test.py')
img_file_path = os.path.join(BASE_DIR, 'img')
os.rename(file_path, 'my_test.py')
os.rename(img_file_path, 'my_img')
file_list_two = os.listdir(BASE_DIR)
print(file_list_two)
# ['ATM', 'ATM.py', 'ATM1','my_test.py', 'my_img']
(8)获取当前工作目录(getcwd)
import os
# 获取当前工作目录,即当前python脚本工作的目录路径
file_path = os.getcwd()
print(file_path) # D:\2023propygo
(9)改变当前工作目录(chdir)
import os
BASE_DIR = os.path.dirname(__file__)
# 获取当前工作目录,即当前python脚本工作的目录路径
file_path = os.getcwd()
print(file_path)
# D:\2023propygo
img_file_path = os.path.join(BASE_DIR, 'img')
os.chdir(img_file_path)
file_path_new = os.getcwd()
print(file_path_new) # D:\2023propygo\img
标签:__,模块,BASE,file,print,path,os
From: https://www.cnblogs.com/ssrheart/p/17904763.html