Python重命名文件并移動到對應文件夾
在日常的文件管理和處理過程中,我們可能會遇到需要將文件整理到不同文件夾中的需求。例如,我們有一個包含多個文件的目錄,文件名的首字符表示文件應該存放在哪個文件夾中。我們可以使用Python腳本來自動完成這個任務,實現(xiàn)文件的分類整理。本文將介紹如何通過Python編寫一個腳本來實現(xiàn)以下功能:
檢查并刪除空文件夾
將文件按照文件名的首字符分類,移動到對應的文件夾中。
1. 基本需求
假設我們有一個文件夾save,其中包含多個文件和一些空文件夾。我們需要做以下幾件事:
刪除空文件夾:首先檢查文件夾是否為空,如果是空文件夾,刪除它。
移動文件到對應文件夾:根據(jù)文件名的首字母,將文件移動到相應的文件夾中。
2. 實現(xiàn)代碼解析
import os
import shutil
# 設置文件保存路徑
save_path = './save'
# 遍歷目錄下的所有文件和文件夾
for file in os.listdir(save_path):
# 如果是文件夾
if os.path.isdir(os.path.join(save_path, file)):
try:
# 嘗試刪除空文件夾
os.rmdir(os.path.join(save_path, file))
print('刪除空文件夾:', file)
except Exception as e:
# 如果文件夾不為空,捕獲異常并輸出錯誤信息
print('>>>', e)
continue
# 獲取文件名的首字母
file_dir = os.path.join(save_path, file[0])
# 如果目標文件夾不存在,則創(chuàng)建它
if not os.path.exists(file_dir):
os.mkdir(file_dir)
# 移動文件到對應的文件夾
shutil.move(os.path.join(save_path, file), os.path.join(file_dir, file))
3. 代碼解釋
3.1 os.listdir(save_path)
os.listdir(save_path) 會列出 save 文件夾下的所有文件和文件夾名稱。返回的內容是一個包含文件名(包括文件夾和文件)的列表。
3.2 刪除空文件夾
if os.path.isdir(os.path.join(save_path, file)):
try:
os.rmdir(os.path.join(save_path, file))
print('刪除空文件夾:', file)
except Exception as e:
print('>>>', e)
continue
os.path.isdir:檢查指定路徑是否為文件夾。
os.rmdir:刪除空文件夾。如果文件夾不為空,刪除會失敗并拋出異常,我們通過try-except來捕獲異常并輸出錯誤信息。
如果該項是空文件夾,則打印提示信息并跳過該文件夾,繼續(xù)處理其他文件。
3.3 根據(jù)文件首字母分類并移動文件
file_dir = os.path.join(save_path, file[0])
if not os.path.exists(file_dir):
os.mkdir(file_dir)
shutil.move(os.path.join(save_path, file), os.path.join(file_dir, file))
file[0]:獲取文件名的首字母,這決定了文件應該被分類到哪個文件夾中。
os.path.exists(file_dir):檢查目標文件夾是否存在。如果不存在,則使用os.mkdir創(chuàng)建一個新文件夾。
shutil.move:將文件從源路徑移動到目標路徑。
4. 代碼執(zhí)行結果
運行該腳本后,系統(tǒng)會遍歷save目錄下的所有文件,執(zhí)行以下操作:
刪除所有空的文件夾。
根據(jù)每個文件名的首字母創(chuàng)建新的文件夾,并將文件移動到對應的文件夾中。
例如,假設save文件夾中有以下文件:
apple.txt
banana.docx
cat.pdf
空文件夾folder1
執(zhí)行腳本后,save目錄下將會有三個新的文件夾:
a/,包含apple.txt
b/,包含banana.docx
c/,包含cat.pdf
空文件夾folder1將被刪除。
5. 總結
這段Python代碼通過os和shutil模塊實現(xiàn)了自動化的文件分類和空文件夾刪除。這樣的腳本在文件整理、數(shù)據(jù)清理等場景下非常有用。你可以根據(jù)實際需求修改文件夾分類規(guī)則,例如使用文件的擴展名、文件大小等作為分類標準。
方法補充
下面小編為大家整理了一下python快速移動文件內容到另一個文件夾的示例代碼,希望對大家有所幫助
一–>多
代碼如下,方便備用:
import shutil
import os
def remove_file(old_path, new_path):
print(old_path)
print(new_path)
filelist = os.listdir(old_path) # 列出該目錄下的所有文件,listdir返回的文件列表是不包含路徑的。
# print(filelist)
for i, file in enumerate(filelist):
src = os.path.join(old_path, file)
dst = os.path.join(new_path, file)
# print('src:', src)
# print('dst:', dst)
shutil.move(src, dst)
# 如果是復制,改成如下代碼
# shutil.copy(src, dst)
# 拆分數(shù)量
if (i == 999):
break
if __name__ == '__main__':
for i in range(1, 12):
name = '新建文件夾' + str(i)
if os.path.exists(name)==False:
os.mkdir(name)
remove_file(r"F:\圖片名稱\圖片", name)
多–>一
import shutil
import os
def remove_file(old_path, new_path):
print(old_path)
print(new_path)
filelist = os.listdir(old_path) # 列出該目錄下的所有文件,listdir返回的文件列表是不包含路徑的。
# print(filelist)
for i, file in enumerate(filelist):
src = os.path.join(old_path, file)
dst = os.path.join(new_path, file)
# print('src:', src)
# print('dst:', dst)
shutil.move(src, dst)
# 如果是復制,改成如下代碼
# shutil.copy(src, dst)
if __name__ == '__main__':
for i in range(1, 12):
name = '新建文件夾' + str(i)
remove_file(name, r"E:\服務器數(shù)據(jù)\test_latest\11068")
到此這篇關于Python重命名文件并移動到對應文件夾的文章就介紹到這了,更多相關Python重命名文件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python函數(shù)之iterrows(),iteritems(),itertuples()的區(qū)別說明
這篇文章主要介紹了Python函數(shù)之iterrows(),iteritems(),itertuples()的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05
完美解決Django2.0中models下的ForeignKey()問題
這篇文章主要介紹了完美解決Django2.0中models下的ForeignKey()問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
Python實現(xiàn)的大數(shù)據(jù)分析操作系統(tǒng)日志功能示例
這篇文章主要介紹了Python實現(xiàn)的大數(shù)據(jù)分析操作系統(tǒng)日志功能,涉及Python大文件切分、讀取、多線程操作等相關使用技巧,需要的朋友可以參考下2019-02-02
Django之Mode的外鍵自關聯(lián)和引用未定義的Model方法
今天小編就為大家分享一篇Django之Mode的外鍵自關聯(lián)和引用未定義的Model方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
python 實現(xiàn)二維字典的鍵值合并等函數(shù)
今天小編就為大家分享一篇python 實現(xiàn)二維字典的鍵值合并等函數(shù),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
python應用程序在windows下不出現(xiàn)cmd窗口的辦法
這篇文章主要介紹了python應用程序在windows下不出現(xiàn)cmd窗口的辦法,適用于python寫的GTK程序并用py2exe編譯的情況下,需要的朋友可以參考下2014-05-05

