[英]Rename Files without Extension
所以我有一個目錄Dir
, Dir
有三個子目錄,每個子目錄有五個文件:
如您所見,有四個不帶擴展名的文件和一個帶.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.