在Python中重命名任何文件或目录中的部分名称
我有一个包含多个文件夹和文件的根文件夹,我需要使用Python重命名所有匹配的通信。例如,我想重命名包含单词“test”的文件和文件夹,并替换为“earth” 我使用的是Ubuntu服务器18.04。我已经试过一些密码了。但我会留下最后一个我试过的。我认为这真的很容易做到,但我几乎没有任何py方面的知识,这是我目前唯一的解决方案在Python中重命名任何文件或目录中的部分名称,python,rename,batch-rename,Python,Rename,Batch Rename,我有一个包含多个文件夹和文件的根文件夹,我需要使用Python重命名所有匹配的通信。例如,我想重命名包含单词“test”的文件和文件夹,并替换为“earth” 我使用的是Ubuntu服务器18.04。我已经试过一些密码了。但我会留下最后一个我试过的。我认为这真的很容易做到,但我几乎没有任何py方面的知识,这是我目前唯一的解决方案 import os def replace(fpath, test, earth): for path, subdirs, files in os.walk(
import os
def replace(fpath, test, earth):
for path, subdirs, files in os.walk(fpath):
for name in files:
if(test.lower() in name.lower()):
os.rename(os.path.join(path,name), os.path.join(path,
name.lower().replace(test,earth)))
将遍历所有文件和文件夹,并将名称从test更改为earth以下是一些适用于您的工作代码:
def replace(fpath):
filenames = os.listdir()
os.chdir(fpath)
for file in filenames:
if '.' not in file:
replace(file)
os.rename(file, file.replace('test', 'earth'))
下面是对代码的解释:
- 首先,我们得到目录中文件名的列表
- 之后,我们切换到所需的文件夹
- 然后我们遍历文件名
- 程序将尝试将每个文件名中的任何“test”实例替换为“earth”
- 然后,它将名称中带有“test”的文件重命名为替换了“test”的版本
- 如果当前迭代的文件是一个文件夹,它将使用新文件夹再次运行该函数,但完成后将恢复到原始文件夹
编辑以通过子文件夹添加递归迭代。非常感谢!但是我如何才能将代码搜索放在子文件夹中呢?@Kulcanhez很抱歉回复太晚了。我对答案进行了编辑以适应这一点。