我想把a.txt改为b.kml。


当前回答

从Python 3.3及更高版本开始,通常首选使用os。Replace而不是os。如果目标文件已经存在,则不会引发FileExistsError。

assert os.path.isfile('old.txt')
assert os.path.isfile('new.txt')

os.rename('old.txt', 'new.txt')
# Raises FileExistsError
os.replace('old.txt', 'new.txt')
# Does not raise exception

assert not os.path.isfile('old.txt')
assert os.path.isfile('new.txt')

请参见文档。

其他回答

import shutil

shutil.move('a.txt', 'b.kml')

这将用于重命名或移动文件。

如何修改目录中文件名的首字母。

import os
path = "/"

for file in os.listdir(path):
    os.rename(path + file, path + file.lower().capitalize())

then = os.listdir(path)
print(then)

下面是一个只使用pathlib而不使用os的例子,它改变了目录中所有文件的名称,基于字符串替换操作,而不使用also字符串连接:

from pathlib import Path

path = Path('/talend/studio/plugins/org.talend.designer.components.bigdata_7.3.1.20200214_1052\components/tMongoDB44Connection')

for p in path.glob("tMongoDBConnection*"):
    new_name = p.name.replace("tMongoDBConnection", "tMongoDB44Connection")
    new_name = p.parent/new_name
    p.rename(new_name)

使用os.rename:

import os

os.rename('a.txt', 'b.kml')

用法:

os.rename('from.extension.whatever','to.another.extension')
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")

这个应该可以了。python 3 +