溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用python怎么在遍歷文件夾后修改文件后綴

發(fā)布時(shí)間:2021-03-16 16:11:52 來(lái)源:億速云 閱讀:134 作者:Leah 欄目:開(kāi)發(fā)技術(shù)

使用python怎么在遍歷文件夾后修改文件后綴?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

用法 python Modifer.py ./ -fp java xml

# coding:utf-8
import os
import sys

#批量修改路徑與文件名
def Modifyprefix(Path,oldcontent,newcontent):
  all_file_list = os.listdir(Path)  #列出指定目錄下的所有文件
  for file_name in all_file_list:
    currentdir =os.path.join(Path, file_name) #連接指定的路徑和文件名or文件夾名字
    if os.path.isdir(currentdir):  #如果當(dāng)前路徑是文件夾,則跳過(guò)
      Modifyprefix(currentdir,oldcontent,newcontent)
    fname = os.path.splitext(file_name)[0] #分解出當(dāng)前的文件路徑名字
    ftype = os.path.splitext(file_name)[1] #分解出當(dāng)前的文件擴(kuò)展名
    if oldcontent in fname:
      fdcount[0]+=1
      replname =fname.replace(oldcontent,newcontent) #將原文件名中的'oldcontent'字符串內(nèi)容全替換為'newcontent'字符串內(nèi)容
      newname = os.path.join(Path,replname+ftype)  #文件路徑與新的文件名字+原來(lái)的擴(kuò)展名
      os.rename(currentdir,newname) #重命名

#批量修改文件擴(kuò)展名(后綴)
def Modifypostfix(Path,oldftype,newftype):
  all_file_list = os.listdir(Path)     #列出指定目錄下的所有文件
  for file_name in all_file_list:
    currentdir =os.path.join(Path,file_name)
    if os.path.isdir(currentdir):          #迭代
      Modifypostfix(currentdir,oldftype,newftype)
    fname = os.path.splitext(file_name)[0]
    ftype = os.path.splitext(file_name)[1]
    if oldftype in ftype[1:]: #找到需要修改的擴(kuò)展名
      typecount[0]+=1
      ftype=ftype.replace(oldftype,newftype)
      newname = os.path.join(Path,fname+ftype) #文件路徑與原來(lái)的文件名字+新的擴(kuò)展名
      os.rename(currentdir,newname)        #重命名

def Useage():
  print unicode("\n[+] 用法: python Modifer.py [指定目錄](méi) [選項(xiàng)] [參數(shù)1] [參數(shù)2]","utf-8")
  print unicode("[+] 選項(xiàng) [-fd] :批量修改目錄和文件名        [參數(shù)1]: 需要替換的字符   [參數(shù)2]:替換字符串","utf-8")
  print unicode("[+] 選項(xiàng) [-fp] :批量修改文件后綴名         [參數(shù)1]: 原后綴名      [參數(shù)2]:需要替換的后綴名","utf-8")
  print unicode("[+] 選項(xiàng) [-all] :批量修改目錄、文件名和文件后綴名  [參數(shù)1]: 需要替換的字符部分 [參數(shù)2]:替換字符串","utf-8")
  print unicode(r"[+] 用法示例:python Modifer.py D:\files -fp txt data","utf-8")

if __name__=="__main__":
  typecount=[0]
  fdcount=[0]
  if len(sys.argv)==2 and "-h" in sys.argv[1]:
    Useage()
    sys.exit()
  elif len(sys.argv) !=5:
    print unicode("\n[+] 參數(shù)錯(cuò)誤 !\n","utf-8")
    print unicode("[+] 用 -h 或--help 參數(shù)查看Modifer.py用法","utf-8")
    sys.exit()
  elif os.path.isdir(sys.argv[1]) is False:
    print unicode("\n[+] 指定目錄錯(cuò)誤 ! 請(qǐng)檢查輸入路徑是否正確,路徑中不能有空格\n","utf-8")
    print unicode("[+] 用 -h 或--help 參數(shù)查看Modifer.py用法","utf-8")
    sys.exit()
  elif sys.argv[2]=="-fd":
    Modifyprefix(sys.argv[1],sys.argv[3],sys.argv[4])
    print unicode("\n[+] Modifer.py  Build by LandGrey","utf-8")
    print unicode("[+] 完成 !","utf-8")
    print unicode("[+] 共修改%s個(gè)目錄和文件名"%fdcount[0],"utf-8")
  elif sys.argv[2]=="-fp":
    Modifypostfix(sys.argv[1],sys.argv[3],sys.argv[4])
    print unicode("\n[+] Modifer.py  Build by LandGrey","utf-8")
    print unicode("[+] 完成 !","utf-8")
    print unicode("[+] 共修改%s個(gè)后綴名"%typecount[0],"utf-8")
  elif sys.argv[2]=="-all":
    Modifypostfix(sys.argv[1],sys.argv[3],sys.argv[4])
    Modifyprefix(sys.argv[1],sys.argv[3],sys.argv[4])
    print unicode("\n[+] Modifer.py  Build by LandGrey","utf-8")
    print unicode("[+] 完成 !","utf-8")
    print unicode("[+] 共修改%s個(gè)目錄名、文件名和后綴名"%(typecount[0]+fdcount[0]),"utf-8")
  else:
    print unicode("\n[+] 選項(xiàng)錯(cuò)誤 !\n","utf-8")
    print unicode("[+] 用 -h 或--help 參數(shù)查看Modifer.py用法","utf-8")
    sys.exit()

關(guān)于使用python怎么在遍歷文件夾后修改文件后綴問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI