Python,我想替换一组文件的部分文件名

时间:2013-01-23 21:34:08

标签: python file rename

我想编写一个程序,询问您要替换的内容以及替换它的内容。

我有一大堆具有不同扩展名的文件,我想替换部分文件名,但我要替换的所有部分都是相同的。我想对文件夹中的每个文件执行此操作

所以我有像

这样的文件
ABC.txt
gjdABCkg.txt
ABCfg.jpg
ffABCff.exe

我只想用我想要的3个字母替换ABC 我正在使用python 3.2

我正在搞乱,看看我是否可以让它上班,但我没做的就是工作 所以这就是我到目前为止所拥有的。

import os  

directory = input ("Enter your directory")
old = input ("Enter what you want to replace ")
new = input ("Enter what you want to replace it with")

2 个答案:

答案 0 :(得分:3)

你可能需要添加一些东西,但这是基本的想法:

import os

def rename(path,old,new):
    for f in os.listdir(path):
        os.rename(os.path.join(path, f), 
                  os.path.join(path, f.replace(old, new)))

编辑:正如注释中提到的 @ J.F Sebastian ,你可以使用Python 3.3中的相对路径(至少在Linux机器上)。

来自docs

os.replace(src, dst, *, src_dir_fd=None, dst_dir_fd=None)可以支持指定src_dir_fd和/或dst_dir_fd来提供paths relative to directory descriptors

答案 1 :(得分:0)

import os

def rename(path,oldstr,newstr):
    for files in os.listdir(path):
        os.rename(os.path.join(path, files), os.path.join(path, files.replace(oldstr, newstr)))

使用它可以很容易地完成你的工作