獲取目錄下所有后綴名稱
import os
def GetSuffix(path):
suffix = []
for root, dirs, files in os.walk(path):
for file_name in files:
filename, file_extension = os.path.splitext(file_name)
if file_extension not in suffix:
suffix.append(file_extension)
#print file_extension
return suffix
上面的這個函數用到了os.walk這個函數,它主要功能是遍歷當前目錄,并且返回三個元組,(dirpath, dirnames, filenames)
。dirpath
是一個字符串,指明了文件夾的路徑。dirnames 是一個列表,里面存儲的是dirpath
文件夾下的子文件夾。filenames
也是一個列表,存儲的則是dirpath文件夾下的所有文件。上面的函數就是直接使用了filenames
這個元組。
刪除特定后綴的文件
def RemoveSuffixFile(path,suffix):
for root, dirs, files in os.walk(path):
for file_name in files:
filename, file_extension = os.path.splitext(file_name)
if file_extension in suffix:
os.remove(os.path.join(root,file_name))
print (os.path.join(root,file_name)+' is removed')
獲取目錄下所有子文件夾或者文件名
from os import listdir
from os.path import isfile, isdir, join
#定義一個函數來返回FilePath文件加下所有的文件
def ListFiles(FilePath):
#listdir會返回文件夾下所有的文件,包括子文件夾,類似與matlab中的dir函數。
#isfile檢查其為文件還是文件夾
onlyfiles = [ f for f in listdir(FilePath) if isfile(join(FilePath,f)) ]
return onlyfiles;
#同理,可以返回FilePath目錄下所有的文件夾
def ListDir(FilePath):
#listdir會返回文件夾下所有的文件,包括子文件夾,類似與matlab中的dir函數。
#isfile檢查其為文件還是文件夾
onlyfiles = [ f for f in listdir(FilePath) if isdir(join(FilePath,f)) ]
return onlyfiles;
按序號重命名(格式轉換)文件夾下圖像文件,并統一格式
def FormatFile(path,suffix,tosuffix):
for root, dirs, files in os.walk(path):
for i, file_name in enumerate(files):
filename, file_extension = os.path.splitext(file_name)
if file_extension in suffix and file_extension != tosuffix:
print("convert "+file_name)
img = Image.open(os.path.join(root,file_name)).convert('RGB')
img.save(os.path.join(root,(str(i)+tosuffix)))
os.remove(os.path.join(root,file_name))
elif file_extension in suffix and file_extension == tosuffix:
os.rename(os.path.join(root,file_name),os.path.join(root,(str(i)+tosuffix)))
else:
print('skip file');