python批量修改文件名的实现代码
#coding:utf-8 #批量修改文件名 import os import re import datetime re_st = r'(\d+)\+\s?\((\d+)\)' #用于匹配旧的文件名,需含分组 re_match_old_file_name = re.compile(re_st) #要修改的目录 WORKING_PATH = r'F:\Gallery' #---------------------------------------------------------------------- def rename_fomat(name): """ 文件重命名格式组织模块(一般修改这里就可以了) NOTE:返回类型必须是unicode """ if name: re_rn = re_match_old_file_name.findall(name) if re_rn and re_rn != []: re_rn = re_rn[0] num = int(re_rn) new_nm = u'NO.%04d' % ( num) return new_nm #---------------------------------------------------------------------- def logs(error): """ 错误记录 """ log = '' LOG_FILE = open(r'./log.txt', 'a') live_info =""" ========== Time : %s title : %s Path : %s ========== """ % ( datetime.datetime.now(), str(error['title']), str(error['index']), ) log += live_info errors = error['error_paths'] for item in errors: item = '%s\n' % item log += item log = log.encode('utf-8') try: LOG_FILE.write(log) except IOError: print u'写入日志失败' finally: LOG_FILE.close() #---------------------------------------------------------------------- def rename(old, new): """ 文件重命名模块 return: 0:rename success 1:the new path is exists -1:rename failed """ if not os.path.exists(new): try: os.renames(old, new) return 0 except IOError: print 'path error:', new return -1 else: return 1 #---------------------------------------------------------------------- def get_dirs(path): """ 获取目录列表 """ if os.path.exists(path): return os.listdir(path) else: return -1 #---------------------------------------------------------------------- def get_input_result(word, choice): """ 获取正确的输入结果 """ correct_result = set(choice) word = '===%s?\n[in]:' % (word) while True: in_choice = raw_input(word) if in_choice in correct_result: return in_choice #---------------------------------------------------------------------- def batch_rename(index, dirs = []): """ 批量修改文件 """ index = unicode(index) errors = [] if dirs == []: dirs = get_dirs(path = index) if dirs and dirs != []: for item in dirs: item = unicode(item) new_name = rename_fomat(item) if new_name : old_pt = u'%s\\%s'% (index, item) new_pt = u'%s\\%s'% (index, new_name) res_rn = rename(old_pt, new_pt) if res_rn != 0: errors.append(item) else: errors.append(item) if errors and errors != []: print 'Rename Failed:' logs({ 'index': index, 'title': 'Rename Failed' , 'error_paths': errors, }) for i, item in enumerate(errors): print item, '|', if i % 5 == 4: print '' print '' else: return -1 #---------------------------------------------------------------------- def batch_rename_test(index): """ 测试 返回过滤结果 """ index = unicode(index) errors = [] correct = [] dirs = get_dirs(path = index) if dirs and dirs != []: for x, item in enumerate(dirs): item = unicode(item) new_name = rename_fomat(item) if new_name : correct.append(item) old_pt = u'%s\\%s'% (index, item) new_pt = u'%s\\%s'% (index, new_name) print '[%d]O: %s' % ( x + 1, old_pt) print '[%d]N: %s' % ( x + 1, new_pt) else: errors.append(item) if errors and errors != []: print 'Not Match:' logs({ 'index': index, 'title': 'Not Match', 'error_paths': errors, }) for i, item in enumerate(errors): print item, '|', if i % 5 == 4: print '' print '' return correct #---------------------------------------------------------------------- def manage(index): """ 程序组织块 """ file_filter = batch_rename_test(index) do_choice = get_input_result( word = 'Do with this(y / n)', choice = ['y', 'n'] ) if do_choice == 'y': batch_rename(index, dirs= file_filter) print 'Finished !' if __name__ == '__main__': path = WORKING_PATH manage(index = path)

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。
