我想把a.txt改为b.kml。
当前回答
使用os.rename:
import os
os.rename('a.txt', 'b.kml')
用法:
os.rename('from.extension.whatever','to.another.extension')
其他回答
import shutil
shutil.move('a.txt', 'b.kml')
这将用于重命名或移动文件。
从Python 3.4开始,可以使用pathlib模块来解决这个问题。
如果您使用的是旧版本,则可以使用这里提供的反向移植版本
让我们假设你不是在根路径(只是增加一点难度),你想重命名,并必须提供一个完整的路径,我们可以看看:
some_path = 'a/b/c/the_file.extension'
所以,你可以用你的路径创建一个path对象:
from pathlib import Path
p = Path(some_path)
为了提供一些关于这个物体的信息,我们可以从中提取一些东西。例如,如果出于某种原因,我们想通过将文件名从the_file修改为the_file_1来重命名文件,那么我们可以得到文件名部分:
name_without_extension = p.stem
并且仍然握着分机:
ext = p.suffix
我们可以通过简单的字符串操作来执行修改:
Python 3.6及更高版本使用f-strings!
new_file_name = f"{name_without_extension}_1"
否则:
new_file_name = "{}_{}".format(name_without_extension, 1)
现在我们可以对创建的path对象调用rename方法并附加ext来执行重命名,以完成我们想要的正确重命名结构:
p.rename(Path(p.parent, new_file_name + ext))
更简单地展示它的简单性:
Python 3.6 +:
from pathlib import Path
p = Path(some_path)
p.rename(Path(p.parent, f"{p.stem}_1_{p.suffix}"))
Python 3.6以下的版本使用字符串格式方法:
from pathlib import Path
p = Path(some_path)
p.rename(Path(p.parent, "{}_{}_{}".format(p.stem, 1, p.suffix))
如何修改目录中文件名的首字母。
import os
path = "/"
for file in os.listdir(path):
os.rename(path + file, path + file.lower().capitalize())
then = os.listdir(path)
print(then)
import os
# Set the path
path = 'a\\b\\c'
# save current working directory
saved_cwd = os.getcwd()
# change your cwd to the directory which contains files
os.chdir(path)
os.rename('a.txt', 'b.klm')
# moving back to the directory you were in
os.chdir(saved_cwd)
使用os.rename。但是你必须把两个文件的完整路径传递给函数。如果我的桌面上有一个。txt文件那么我就会这样做,而且我也必须给出一个完整的重命名文件。
os.rename('C:\\Users\\Desktop\\a.txt', 'C:\\Users\\Desktop\\b.kml')
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录