如何使用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_file
到the_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+