OS模块:在程序中,经常需要对大量文件和路径进行操作,比如:查询某一路径下同种类型文件,批量修改文件名字等。OS模块提供了非常丰富得方法用来处理文件和目录。
一、常用OS模块列表
二、OS模块创建文件夹
三、OS模块中的path
四、单一修改文件名字
五、批量修改文件和文件夹名字
六、只修改文件,不修改文件夹
一、常用OS模块列表:
os.name:指示你正在使用的工作平台。Windows是’nt’,Linux/Unix是’posix’。
os.getcwd():获得当前工作目录
os.listdir(dirname):列出dirname下的目录和文件
os.remove(file):删除一个文件
os.rmdir(name):删除目录
os.mkdir(name):创建目录
os.path.isfile(path):判断指定对象是否为文件。是返回True,否则False
os.path.isdir(path):判断指定对象是否为目录。是True,否则False
os.path.exists(name):判断是否存在文件或目录name,是True,否则False
os.path.split():返回一个路径的目录名和文件名,即将目录和文件名分开
os.system():运行shell命令,0代表成功,1代表不成功
os.chdir(dirname):改变工作目录到dirname
os.path.getsize(name):获得文件大小,如果name是目录返回0
os.path.abspath(name):获得绝对路径
os.path.join(path,name):连接目录与文件名或目录,与os.path.split(path)相对
os.path.basename(path):返回文件名
os.path.dirname(path):返回文件路径
二、OS模块创建文件夹
import os
print(os.getcwd()) #查看当前文件路径
print(os.name) #当前平台使用得什么系统 nt是windows posix是UNIX
os.mkdir('./快速创建文件夹')#快速创建文件夹
三、OS模块中的path
主要用于文件得属性获取。例如:去掉目录路径,单独返回文件名、判断指定路径(目录或文件)是否存在等等。该模块的几种常用方法:
result = os.path.abspath('快速创建文件夹')#返回绝对路径
os.path.isdir('快速创建文件夹') #判断是否是文件夹
os.path.isfile('快速创建文件夹')#判断是否是文件
os.path.splitext('OS模块_批量修改文件名.ipynb') #拆分名称,以.拆分
os.path.exists('D:\Anaconda\OS模块_批量修改文件名.ipynb')#判断文件是否存在
a = os.path.getctime('./快速创建文件夹') #获取文件创建的时间戳,一串数字:代表时间1900-01-01 00:00:00
#时间搓修改成时间
import time
timearr = time.localtime(a)
mytime = time.strftime('%Y-%m-%d %H:%M:%S',timearr)
mytime
四、单一修改文件名字
os.listdir('D:\Anaconda\LX\开课吧——大数据分析入门实战') #获取文件夹下所有文件和文件夹的名字
oldpath = os.path.join('D:\Anaconda','图片1.png') #老路径
newpath = os.path.join('D:\Anaconda','图片1fgh.png') #新路径
os.rename(oldpath,newpath) #修改名字
五、批量修改文件和文件夹名字
#批量修改文件名字
#封装批量修改filename_modify函数
def filename_modify(target_dir):
#判断路径是否存在
if os.path.exists(target_dir) == False:
raise Exception('path is not exist')
#遍历文件夹中的文件名
for file in os.listdir(target_dir):
#分割文件名和拓展名
filename = os.path.splitext(file)[0]
fileExpand = os.path.splitext(file)[1]
#将所有文件的后面添加-kkb
newname = filename + '-kkb' + fileExpand
#修改名字
oldpath = os.path.join(target_dir,file) #老路径
newpath = os.path.join(target_dir,newname) #新路径
os.rename(oldpath,newpath)
# print( newname)
pass
filename_modify('D:\Anaconda') #批量修改文件名字
六、只修改文件,不修改文件夹
#批量修改文件名字2
def filename_modify(target_dir,addstr=''):
#判断路径是否存在
if os.path.exists(target_dir) == False:
raise Exception('path is not exist')
#遍历文件夹中的文件名
for file in os.listdir(target_dir):
#分割文件名和拓展名
filename = os.path.splitext(file)[0]
fileExpand = os.path.splitext(file)[1]
# #不修改文件夹的名字 (方法一:判断是否是文件,是文件则继续)
# if os.path.isdir(os.path.join(target_dir,file)):
# continue
#不修改文件夹的名字 (方法二:判断文件名是否为空)
if fileExpand == '':
continue
#将所有文件的后面添加-kkb
newname = filename + addstr + fileExpand
#修改名字
oldpath = os.path.join(target_dir,file) #老路径
newpath = os.path.join(target_dir,newname) #新路径
os.rename(oldpath,newpath)
# print( newname)
pass
filename_modify('D:\Anaconda',addstr='方法11')