Python辦公自動(dòng)化集錦 http://www.itdecent.cn/nb/49019927
項(xiàng)目背景
下載尚硅谷Python資料,發(fā)現(xiàn)視頻文件名格式為:尚硅谷Python基礎(chǔ)+課節(jié)編號(hào),文件名太長(zhǎng),強(qiáng)迫癥希望簡(jiǎn)潔明了,怎么辦?對(duì)于130個(gè)文件,手動(dòng)重命名不現(xiàn)實(shí),很累!!! 想想還是Python批量操作文件比較方便!!!
原型圖

圖1.初始文件命名.jpg
代碼參考
import os
path = 'D:\\181124\\尚硅谷_Python\\02-視頻'
items = os.listdir(path)
os.chdir(path)
print(os.getcwd())
drop_str = '尚硅谷_Python基礎(chǔ)_'
for name in items:
print(name)
new_name = ''.join(name.split(drop_str))
os.rename(name, new_name)
print('-----------------------分界線------------------------')
items = os.listdir(path)
for name in items:
print(name)
運(yùn)行代碼

圖3.修改后的文件命名.jpg
場(chǎng)景:有時(shí)下載電影或者資料,文件名會(huì)自帶其他商標(biāo)或者平臺(tái)標(biāo)語(yǔ),想要批量修改,手動(dòng)修改很繁瑣!……先前分享的代碼邏輯不完善,現(xiàn)優(yōu)化一下
-
原文件包含'【itjc8.com】'想去掉
初始文件.jpg
優(yōu)化代碼
import os ,os.path
def rename(file,keyword):
''' file: 文件路徑 keyWord: 需要修改的文件中所包含的關(guān)鍵字 '''
os.chdir(file)
items = os.listdir(file)
print(os.getcwd())
for name in items :
print(name)
# 遍歷所有文件
if not os.path.isdir(name):
if keyword in name :
new_name = name.replace(keyword,'')
os.renames(name,new_name)
else:
rename(file + '\\' + name, keyword)
os.chdir('...')
print('-----------------------分界線------------------------')
items = os.listdir(file)
for name in items:
print(name)
rename('G:\\學(xué)習(xí)資料\\1234', '_【itjc8.com】')

運(yùn)行結(jié)果.jpg
重名后文件展示

重名后文件展示.jpg
引導(dǎo)-批量修改多層目錄下文件名的后綴名
場(chǎng)景 修改文件夾1目錄下的文件后綴名,同時(shí)修改同文件夾1平級(jí)的多個(gè)文件后綴名,例如jpg、txt、Pdf、png等格式文件,全部更換成MP3格式的文件。
初始目錄展示

初始目錄展示.png
代碼參考
import os
'''將file_dir目錄下的old_type類(lèi)型的文件改成new_type類(lèi)型的文件'''
def file_rename(old_type,new_type,file_dir):
old_files = find_file(old_type,file_dir)
#遍歷所有文件
for old_file in old_files:
'''獲取文件名'''
filename = os.path.splitext(old_file)[0] #文件名
'''新文件名=文件名+新的后綴 拼接起來(lái)'''
new_file = os.path.join(filename + new_type)
'''重命名'''
os.renames(old_file, new_file)
# 打印出文件名 -20表示左對(duì)齊,寬度20
print( "%-20s ===> %20s" % (old_file, new_file))
'''找到某個(gè)類(lèi)型的文件'''
def find_file(file_type,file_dir):
file_set = []
for root ,dirs, files in os.walk(file_dir):
for file in files:
if os.path.splitext(file)[1] == file_type:
file_set.append(os.path.join(root , file ))
return file_set
file_dir = r"D:\文件后綴修改"
file_rename('.jpg', '.mp3', file_dir);
file_rename('.pdf', '.mp3', file_dir);
file_rename('.txt', '.mp3', file_dir);
file_rename('.png', '.mp3', file_dir);
執(zhí)行代碼 查看運(yùn)行結(jié)果

執(zhí)行代碼 查看運(yùn)行結(jié)果.png

全部成功替換成mp3格式文件.png
