如何使用Python重命名文件

我想把a.txt b.kml

使用os.rename

 os.rename('a.txt', 'b.kml') 
 import shutil shutil.move('a.txt', 'b.kml') 

这将工作重命名或移动一个文件。

文件可能在一个目录中,在这种情况下指定path:

 import os old_file = os.path.join("directory", "a.txt") new_file = os.path.join("directory", "b.kml") os.rename(old_file, new_file) 

os.rename(old, new)

这可以在Python文档中find: http : //docs.python.org/library/os.html

你可以使用os.system来调用terminal来完成任务:

 os.system('mv oldfile newfile') 

从Python 3.4开始,可以使用pathlib模块来解决这个问题。

如果您碰巧使用的是旧版本,则可以使用此处find的后端版本

假设你不在根path(只是为了增加一点难度)而想重新命名,而且必须提供一个完整的path,我们可以看看这个:

 some_path = 'a/b/c/the_file.extension' 

所以,你可以走你的path,并创build一个Path对象:

 from pathlib import Path p = Path(some_path) 

只是提供一些有关这个对象的信息,我们现在可以从中提取出来。 例如,如果出于某种原因我们想通过修改文件名从the_filethe_file_1来重命名文件,那么我们可以得到文件名部分:

 name_without_extension = p.stem 

而且还保持着扩展:

 ext = p.suffix 

我们可以用简单的string操作来执行我们的修改:

 new_file_name = "{}_{}".format(name_without_extension, 1) 

现在我们可以通过调用我们创build的path对象上的rename方法来执行我们的重命名,并附加ext来完成我们想要的正确的重命名结构:

 p.rename(Path(p.parent, new_file_name + ext)) 

更简短地展示其简单性:

 from pathlib import Path p = Path(some_path) p.rename(Path(p.parent, "{}_{}".format(p.stem, 1) + p.ext)) 
 import shutil import os files = os.listdir("./pics/") for key in range(0, len(files)): print files[key] shutil.move("./pics/" + files[key],"./pics/img" + str(key) + ".jpeg") 

这应该做到这一点。 python3+