網站首頁 編程語言 正文
對文件進行重命名
直接貼代碼:?
import os
srcFile = './actwork/linkFile/allExtLinks - 副本.txt' dstFile = './actwork/linkFile/allExtLinks - copy.txt' try: ? ? os.rename(srcFile,dstFile) except Exception as e: ? ? print(e) ? ? print('rename file fail\r\n') else: ? ? print('rename file success\r\n')
對文件夾下文件按順序重命名
在處理機器學習的圖片時,需要將圖片根據類別放入不同文件夾中,在文件夾下也想將圖片用數字遞增重命名一下,方便后續處理。
首先,我們看一下python的重命名函數:
os.rename(src,dst)
-
src
:要修改的目錄名 -
dst
:修改后的目錄名
如果dst是一個存在的目錄, 將拋出OSError。
注意:src和dst都是完整路徑+文件名
首先,我們先對文件夾重命名
先使用最簡單的方法嘗試一下
import os def myrename(path): ? ? file_list=os.listdir(path) ? ? i=0 ? ? for fi in file_list: ? ? ? ? old_name=os.path.join(path,fi) ? ? ? ? new_name=os.path.join(path,str(i)) ? ? ? ? os.rename(old_name,new_name) ? ? ? ? i+=1 if __name__=="__main__": ? ? path="D:/test/121" ? ? myrename(path)
我們就可以看到文件夾已經按照順序重命名了
稍微改動一下,顯得沒有那么low
import os def myrename(path): file_list=os.listdir(path) for i,fi in enumerate(file_list): old_name=os.path.join(path,fi) new_name=os.path.join(path,"N0."+str(i)) os.rename(old_name,new_name) if __name__=="__main__": path="D:/test/121" myrename(path)
效果是一樣的,enumerate函數的作用就不再贅述了,我們還可以使用python zip來進行修改:
import os def myrename(path): file_list=os.listdir(path) for i,fi in zip(range(len(file_list)),file_list): old_name=os.path.join(path,fi) new_name=os.path.join(path,"The."+str(i)) os.rename(old_name,new_name) if __name__=="__main__": path="D:/test/121" myrename(path)
效果一樣:
接下來我們對文件進行重命名
上面的三種方法都是可以使用的,只需要稍微改動一下,我以函數enumerate為例演示一下:
先建一個文本文檔
復制粘貼一堆,作為測試用,在函數中加入一個try-except,防止文件重命名出錯,這里重命名需要是相同格式的文件,否則就會報錯:
import os def myrename(path): file_list=os.listdir(path) for i,fi in enumerate(file_list): old_dir=os.path.join(path,fi) filename="my"+str(i+1)+"."+str(fi.split(".")[-1]) new_dir=os.path.join(path,filename) try: os.rename(old_dir,new_dir) except Exception as e: print(e) print("Failed!") else: print("SUcess!") if __name__=="__main__": path="D:/test/121" myrename(path)
原文鏈接:https://adong.blog.csdn.net/article/details/89316031
相關推薦
- 2022-09-27 Golang?Mutex互斥鎖深入理解_Golang
- 2022-08-31 ASP.NET?Core配置設置之Configuration包_實用技巧
- 2022-08-23 .net?core中的System.Buffers命名空間_基礎應用
- 2022-08-10 詳細講解Swift中的類型占位符_Swift
- 2022-06-22 詳解Linux下find查找文件命令和grep查找文件命令_linux shell
- 2022-06-25 pytorch中permute()函數用法實例詳解_python
- 2022-07-10 Popconfirm氣泡確認框無法觸發confirm函數
- 2022-11-05 在jupyter?notebook中使用pytorch的方法_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支