目录
心得:
路径在python里其实就是字符串,有时不要忘记在目录和文件之间加"/"
os.path模块:
- os.path.abspath(path):返回绝对路径
- os.path.basename(path):返回path中的文件名(不包括路径)
- os.path.dirname(path):返回path的目录(不包括文件名)
- os.path.exits(path):路径存在则返回True,否则返回False
- os.path.join(dir,base):把目录dir和文件名base合成一个路径(dir,base实质都是字符串,因此可以不用os.path.join,之间用字符串+法,这样还可以在输出文件时自定义输出文件名)
- os.path.split(path):将路径分割成dirname和basename,返回一个元组(dirname,basename)
- os.path.isabs(path):判断是否为绝对路径
- os.path.isfile(path):判断是否为文件
- os.path.isdir(path):判断是否文目录
os模块:
- os.listdir(path):返回目录path下所有的文件夹+文件名
- os.getcwd():返回当前工作目录
glob.glob模块:
作用:搜索所有符合条件的文件,并以list的形式返回
参数是字符串,字符串里有三种匹配符:
- '*':星号代表所有
- '?':问号代表搜索匹配一个
- '[]’:[0-9]与[a-z]表示匹配0-9的单个数字与a-z的单个字符。
获取当前文件的绝对路径:
os.path.abspath(__file__)
#输出
.../xxx.py
获取当前文件所在文件夹的绝对路径:
os.path.dirname(os.path.abspath(__file__))
批量修改文件夹下子文件夹的名字:
import os
dir = os.path.dirname(os.path.abspath(__file__))
#print(dir)
files = os.listdir(dir)
for file in files:
if os.path.isdir(file):
oldname=file #file实质上是字符串
newname='light3_' + file
os.rename(oldname,newname)
#print(newname)
批量删除文件夹下子文件夹里指定的文件:
import os
input_dir = os.path.dirname(os.path.abspath(__file__))
dir_list = os.listdir(input_dir)
for dir in dir_list:
if os.path.isdir(dir):
#print(dir)
if os.path.exists(os.path.abspath(dir+'/clean.bmp')): # 注意要有“/”
os.remove(os.path.abspath(dir+'/clean.bmp'))