os模块是operation system(操作系统)的简写方式,主要用于在系统操作上进行文件操作使用,如对文件夹进行增删改查等功能
import os from posixpath import join import shutil #删除不为空的目录导入的模块 # 创建一个递归函数用于创建多层目录 def mkdir(path): if not os.path.isdir(path): #判断是否为路径 mkdir(os.path.split(path)[0]) else: return os.mkdir(path) #创建目录 mkdir(r'C:\Users\User\Desktop\os新建文件夹\img') # 也可以使用python的makedirs()创建多层目录 os.makedirs(r'C:\Users\User\Desktop\os-makedirs\img1') # # 删除目录 os.rmdir(path) os.rmdir(r'C:\Users\User\Desktop\os-makedirs\img1') #要删除的空目录img1,如果删除的文件夹不存在,则会报错(当前目录不存在) # 删除不为空的目录shutil.rmtreel() if os.path.exists(r'C:\Users\User\Desktop\os-makedirs\img1'):#判断目录是否存在 shutil.rmtree(r'C:\Users\User\Desktop\os-makedirs\img1') #存在就删除 print('目录删除成功') else: print('目录不存在') # # 获取当前的操作系统,nt代表是window系统 print(os.name) print(os.getcwd()) #获取当前的工作目录 print(os.path.abspath(r'接单代码\1688.py')) #获取1688.py的绝对路径 print(os.path.exists(r'D:\VScode\Python')) #exists()用于判断路径或者文件是否存在,不区分路径的大小写 # 创建文件夹 os.mkdir(path,mode = 0o777) os.mkdir(r'D:\VScode\os新建文件夹') #创建目录,但是只能创建一个文件夹 print('ok') # # 可以通过使用exists先判断目录是否存在,而后再创建文件夹 如下面的代码(如果 D:\VScode\Python 不存在,则进行创建,否则就输出提示信息,该文件夹已存在 if not os.path.exists(r'D:\VScode\Python'): os.mkdir(r'D:\VScode\Python') else: print('该文件夹已存在') ''' 遍历目录 os.walk()''' #语法: os.walk(top[,topdown][,onerror][,followlinks]) #必选:top 可选:topdown,onerror,followliks path = os.walk(r'D:\VScode\Python') for p in path: #输出遍历的结果 print(p,'\n') # 得到更直观的效果 path1 = r'C:\Users\User\Desktop\新建文件夹' print(path1,'目录下包含的文件和目录') for root,dirs,files in os.walk(path1,topdown=True): #遍历指定目录,使用从上到下的顺序 for name in dirs: print(os.path.join(root,name)) #输出遍历到的目录使用join连接在一起下面for循环同理 for name in files: print('\t',os.path.join(root,name)) '''高级文件操作''' # os.remove() 删除文件 或者文件夹 # os.rename('原路径','修改后') 重命名文件或者文件夹,只能修改位置最后一个文件或者文件夹 # os.stat(path) 获取文件的基本信息, # os.remove(r'C:\Users\User\Desktop\新建文件夹\111\新建txt文件.txt') #删除指定的文件 # 获取文件信息 def formatTime(longtime): #格式化时间 import time return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(longtime)) def formatByte(number): #格式化文件大小 for (scale,label) in [(1024*1024*1024,"GB"),(1024*1024,'MB'),(1024,'KB')]: if number >= scale: return '%.2f %s' %(number*1.0/scale,label) elif number == 1: return "1字节" else: #小于1kb byte = '%.2f'%(number or 0) #给出number或者0 return (byte[:-3] if byte.endswith('.00') else byte) + '字节' #判断byte末尾三位数是不是以.00结尾。如果不是直接输出这个值 fileinfo = os.stat(r'C:\Users\User\Desktop\新建文件夹\index.html') #获取文件的基本信息 print('文件的完整路径' ,os.path.abspath(r'C:\Users\User\Desktop\新建文件夹\index.html')) #获取文件完整路径 print('索引号',fileinfo.st_ino) print('设备名',fileinfo.st_dev) print('文件大小',formatByte(fileinfo.st_size)) print('最后一次访问时间',formatTime(fileinfo.st_atime)) print('最后一次修改时间',formatTime(fileinfo.st_mtime)) print('最后一次状态变化时间',formatTime(fileinfo.st_ctime))
这里仅对OS模块的部分对文件的操作做了总结。仅作为学习总结!!!如有错误的地方,希望各位BigFish能做出指正