簡體   English   中英

重命名不帶擴展名的文件

[英]Rename Files without Extension

所以我有一個目錄DirDir有三個子目錄,每個子目錄有五個文件:

  1. Dir / A /一,二,三,四,五.txt
  2. Dir / B /一,二,三,四,五.txt
  3. Dir / C /一,二,三,四,五.txt

如您所見,有四個不帶擴展名的文件和一個帶.txt擴展名的文件

如何以遞歸方式重命名所有不帶擴展名的文件?

目前,我正在嘗試此方法,該方法僅適用於單個目錄,但是如果將此腳本放入Dir ,如何捕獲所有文件?

import os, sys

for filename in os.listdir(os.path.dirname(os.path.abspath(__file__))):
    base_file, ext = os.path.splitext(filename)
    if ext == "":
        os.rename(filename, base_file + ".png")

如果要執行遞歸遍歷,請使用os.walk

for root, dirs, files in os.walk(os.path.dirname(os.path.abspath(__file__))):
    for file in files:
        base_path, ext = os.path.splitext(os.path.join(root, file))

        if not ext:
            os.rename(base_path, base_path + ".png")

os.walk會將您的文件分為正常的文件和目錄,因此不需要os.path.isdir

import os

my_dir = os.getcwd()
for root, dirnames, fnames in os.walk(my_dir):
    for fname in fnames:
        if fname.count('.'): continue  # don't process a file with an extension
        os.rename(os.path.join(root, fname), os.path.join(root, "{}.png".format(fname)))

暫無
暫無

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

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