簡體   English   中英

使用 os 重命名多個文件夾中的文件

[英]Rename files in Multiple Folders with os

我有多個帶有圖像的文件夾,具有以下文件夾結構,我想重命名其文件。

父目錄

文件夾 1

xyz.jpg abc.png ...

文件夾 2

def.jpg xdd.png ...

重命名.py

## rename.py
import os

## Function to rename
def main():
    folders = ["Folder_1", "Folder_2"]
    for folder_name in folders:
        for count, filename in enumerate(os.listdir(folder_name)):
            if folder_name == "Folder_1":
                dst = f"Folder_1 {str(count)}.jpg"
                src = f"{folder_name}/{filename}"
                dst = f"{folder_name}/{dst}"
            elif folder_name == "Folder_2":
                dst = f"Folder_2 {str(count)}.jpg"
                src = f"{folder_name}/{filename}"
                dst = f"{folder_name}/{dst}"

            os.rename(src, dst)

if __name__ == '__main__':
    main()

但是會出現兩個問題:

  1. 我怎樣才能適應'png'?
  2. 當代碼運行時,只有文件夾 2被更改。

Noobing 這個通過並感謝您的幫助。

您可以使用os.path的功能來提取文件擴展名並將其用於重命名文件。 我使用.png.jpg圖像重新創建了您的目錄,並運行了您的代碼,folder1 和 folder2 都有效。 一定有錯字或其他導致問題的原因。

這是您可以使用的功能:

## rename.py
import os

def main():
    folders = ["folder1", "folder2"]
    for folder_name in folders:
        for count, filename in enumerate(os.listdir(folder_name)):
            _, ext = os.path.splitext(os.path.basename(filename))
            newfilename = f"{folder_name} {str(count)}{ext}"
            src = f"{folder_name}/{filename}"
            dst = f"{folder_name}/{newfilename}"
            os.rename(src, dst)

if __name__ == '__main__':
    main()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM