Python脚本递归地重命名文件夹和子文件夹中的所有文件

2024-05-23 21:54:44 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我有很多不同的文件需要重命名为其他文件。我已经做到了这一点,但我希望它能让我有很多项要替换,以及它们相应的替换项,而不是逐个键入,运行代码,然后重新键入。在

更新*我还需要重命名,只改变文件的一部分,而不是全部,所以如果有一个“Cat5e_1mbend1bottom50mm2 bend2top-Aqeoiu31”,它只需将其更改为“Cat5e50m1mBED_50m2mBE2U-Aqeoiu31”

import os, glob

#searches for roots, directory and files
for root,dirs, files in os.walk(r"H:\My Documents\CrossTalk\\"):
   for f in files:
       if f == "Cat5e_1mBend1bottom50m2mBend2top":#string you want to rename
          try:
             os.rename('Cat5e_1mBend1bottom50m2mBend2top', 'Cat5e50m1mBED_50m2mBE2U'))
          except FileNotFoundError, e:
             print(str(e))

Tags: 文件代码inimportfor键入osfiles
2条回答

这是你想要的吗?在

import os, glob
#searches for roots, directory and files
#Path
p=r"C:\\Users\\joao.limberger\\Documents\\Nova Pasta"
# rename arquivo1.txt to arquivo33.txt and arquivo2.txt to arquivo44.txt
renames={"arquivo1.txt":"arquivo33.txt","arquivo2.txt":"arquivo44.txt"}
for root,dirs,files in os.walk(p):
   for f in files:
      if f in renames.keys():#string you want to rename
         try:
            os.rename(os.path.join(root , f), os.path.join(root , renames[f]))
            print("Renaming ",f,"to",renames[f])
         except FileNotFoundError as e:
            print(str(e))

看看这是不是你想要的!!!在

^{pr2}$

{首先你需要一个小的代码替换:

import os, glob

name_map = {
     "Cat5e_1mBend1bottom50m2mBend2top": 'Cat5e50m1mBED_50m2mBE2U'
}

#searches for roots, directory and files
for root,dirs,files in os.walk(r"H:\My Documents\CrossTalk"):
   for f in files:
       if f in name_map:
          try:
             os.rename(os.path.join(root, f), os.path.join(root, name_map[f]))
          except FileNotFoundError, e:
          #except FileNotFoundError as e:  # python 3
             print(str(e))

在名称映射中,key(位于“:”左侧的字符串)是文件系统中文件的名称,value(位于“:”右侧的字符串)是您要使用的名称。在

相关问题 更多 >