¥os模块¥

os模块

【一】什么是os模块

  • os模块可以操作本地的文件夹及文件

  • 创建删除文件夹/文件

  • 执行本地的cmd命令

  • 拼接路径

  • file表示当前文件

【二】文件路径相关操作(path)

【1】获取当前绝对路径(abspath)

import os
​
#获取当前路径
os_path = os.path.abspath(__file__)
print(os_path)#输出:D:\pycharm\project\DAY01\作业\笔记练习.py

【2】获得当前文件所在文件路径(dirname)

import os
​
#获得当前文件所在文件路径
os_path = os.path.dirname(__file__)
print(os_path)#D:\pycharm\project\DAY01\作业

【3】判断当前文件路径是否存在----》文件夹/文件(exists)

file_name = r"D:\pycharm\project\DAY01\作业\tom_log.text"#先给一个路径
print(os.path.exists(path=file_name))#输出True    说明这个路径存在,不存在返回False

【4】拼接文件路径(join)

import os
​
BASE_DIR = os.path.dirname(__file__)#当前路径
print(BASE_DIR)#D:\pycharm\project\DAY01\作业
​
file_name = 'img'
# join 后面可以跟多个路径
file_path = os.path.join(BASE_DIR, file_name)#拼接
print(file_path)#D:\pycharm\project\DAY01\作业\img

【5】切割文件路径

  • 切后得到一个元组里面有两个元素,两个元素分别是(其他路径,最后一个文件夹/文件夹名)

import os
​
#获得当前路径
BASE_DIR = os.path.abspath(__file__)
print(BASE_DIR)#D:\pycharm\project\DAY01\作业\笔记练习.py
#拆分
file_path = os.path.split(BASE_DIR)
print(file_path)#('D:\\pycharm\\project\\DAY01\\作业', '笔记练习.py')

【6】获取文件结尾的文件/文件夹名(basename)

import os
​
file_path = os.path.dirname(__file__)
print(file_path)#D:\pycharm\project\DAY01\作业
filen_name_basename = os.path.basename(file_path)
print(filen_name_basename)#笔记练习.py

【7】判断当前文件是不是文件夹/文件(isdir,isfile)

  • 判断是否是文件isfile

file_path = os.path.dirname(__file__)
print(file_path)#D:\pycharm\project\DAY01\作业
file_path_two = os.path.isfile(file_path)
print(file_path_two)#False
  • 判断是否是文件夹isdir

import os
​
file_path = os.path.dirname(__file__)
print(file_path)#D:\pycharm\project\DAY01\作业
file_path_two = os.path.isdir(file_path)
print(file_path_two)#True

【8】判断当前路径是否是绝对路径(isabs)

file_path = r"作业/01.txt"
print(os.path.isabs(file_path))#False

file_path = r"D:\pycharm\project\DAY01\作业\01.txt"
print(os.path.isabs(file_path))#True

【9】获取当前文件或目录的最后访问时间(getatime)

file_path = os.path.abspath(__file__)
print(file_path)#D:\pycharm\project\DAY01\作业\笔记练习.py
file_time =os.path.getatime(file_path)
print(file_time)#1713527506.5012364

【10】获取当前文件或目录的最后修改时间(getmtime)

file_path = r'D:\pycharm\project'
file_time = os.path.getmtime(file_path)
print(time.strftime("%Y-%m-%d  %H-%M-%S", time.localtime(file_time)))#2024-03-28  19-34-18

【11】获取当前文件或者目录的创建时间(getctime)

file_path = r'D:\pycharm\project'
file_time = os.path.getctime(file_path)
print(time.strftime("%Y-%m-%d  %H-%M-%S", time.localtime(file_time)))#2024-03-27  16-30-42

【12】获取当前文件的大小(getsize)

import os

file_path = r'D:\pycharm\project\DAY01\作业\ATMuser_pass.py'
file_time = os.path.getsize(file_path)
print(file_time)#18283

【三】文件和文件夹操作

【1】创建文件夹(mkdir)

BASE_DIR = os.path.dirname(__file__)
print(BASE_DIR)#D:\pycharm\project\DAY01\作业
file_path = os.path.join(BASE_DIR,"py")#先判断它存在不存在
print(os.path.exists(file_path))#False
if not os.path.exists(file_path):
    os.mkdir(file_path)
print(os.path.exists(file_path))#True创建成功

【2】创建多级文件夹(makedirs)

BASE_DIR = os.path.dirname(__file__)
print(BASE_DIR)#D:\pycharm\project\DAY01\作业
file_path = os.path.join(BASE_DIR,"py","user","log")#先判断它存在不存在
print(os.path.exists(file_path))#False
if not os.path.exists(file_path):
    os.makedirs(file_path)
print(os.path.exists(file_path))#True创建成功

【3】删除单级文件夹(rmdir)

  • 只能删除空的文件夹 即使文件夹内有空文件夹也不算空的

#D:\pycharm\project\DAY01\作业\py
print(os.path.exists(py))#检验路径是否存在
os.rmdir(py)#删除文件夹
print(os.path.exists(py))#检验路径是否删除

【4】删除多级文件夹(removedirs)

  • 删除多级文件夹目录 路径一定是到最里面那一层并且每个文件夹必须是空的

#D:\pycharm\project\DAY01\作业
print(os.path.exists())#检验路径是否存在
os.removedirs(py)#删除文件夹
print(os.path.exists())#检验路径是否删除

【5】列出当前文件夹下所有文件名(listdir)

BASE_DIR = os.path.dirname(__file__)
print(os.listdir(BASE_DIR))

【6】删除指定文件(remove)

#D:\pycharm\project\DAY01\作业
BASE_DIR = os.path.dirname(__file__)
file_path = "11.py"
data = os.path.join(BASE_DIR,file_path)
print(os.remove(data))#None  说明已经删除

【7】给指定文件夹和文件重命名(rename)

  • 给两个绝对路径

    • 一个是之前的绝对路径

    • 一个是重命名后的绝对路径

import os
BASE_DIR = os.path.dirname(__file__)
print(BASE_DIR)#D:\pycharm\project\DAY01\练习模块
old_path = os.path.join(BASE_DIR,'img')
print(old_path)#D:\pycharm\project\DAY01\练习模块\img
new_path = os.path.join(BASE_DIR,'new_img')
print(new_path)#D:\pycharm\project\DAY01\练习模块\new_img
os.rename(old_path)

【8】获取当前文件/文件夹详细信息,元信息(stat)

import os
BASE_DIR = os.path.dirname(__file__)
print(BASE_DIR)#D:\pycharm\project\DAY01\练习模块
print(os.stat(BASE_DIR))#os.stat_result(st_mode=16895, st_ino=21673573206763848, st_dev=1718800474, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1713531542, st_mtime=1713531541, st_ctime=1713531157)

【9】获取当前工作目录(getcwd)

print(os.getcwd())#D:\pycharm\project\DAY01\练习模块

【10】切换工作(chdir)

BASE_DIR = os.path.dirname(__file__)
# 获取当前工作目录,即当前python脚本工作的目录路径
file_path = os.getcwd()
print(file_path)#D:\pycharm\project\DAY01\练习模块
# E:\PythonProjects\07常用模块学习

img_file_path = os.path.join(BASE_DIR, 'img')
os.chdir(img_file_path)

file_path_new = os.getcwd()
print(file_path_new)#D:\pycharm\project\DAY01\练习模块\img

【补充】执行shell命令

  • 执行cmd命令

print(os.system("dir"))

print(os.popen("dir"))

【补充】获取当前系统所对行的默认分隔符

# win \
# mac / linux  /
# 输出操作系统特定的路径分隔符
print(os.sep) # \
# 输出当前平台使用的行终止符
print(os.linesep) # 
# 输出用于分割文件路径的字符串
print(os.pathsep)# ;
# 输出字符串指示当前使用平台
print(os.name) # nt
# win下为 'nt'
# Linux下为 'posix'

【记住重点】

  • os.path.join() 拼接路径

  • os.path.dirname( __file__) 获取当前文件所在的文件夹路径

  • os.path.abspath(__file__)获取当前文件所在的文件路径

  • os.path.exists() 判断路径是否存在

  • os.mkdir() 创建单级文件夹

  • os.makedirs() 创建多级文件夹

  • os.makedirs(path, exist_ok=True) 自动创建不存在的多级文件夹路径

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值