为了账号安全,请及时绑定邮箱和手机立即绑定

使用 os.rename 时真的需要指定文件类型吗?

使用 os.rename 时真的需要指定文件类型吗?

炎炎设计 2023-03-01 16:00:31
我第一次尝试使用 os 模块一次重命名多个文件。但是,似乎我必须指定文件类型。否则,该文件将无法再打开。它变成了这样:但是我可以在不指定文件类型的情况下这样做吗?我怎么做?当我没有指定时,我当前的代码是这样的import osoption = input("\nRename files in current directory? Yes or no: ").lower()if (option == "yes"):    path = os.getcwd()else:        path = os.chdir(input("\nEnter directory: "))    name = input("\nEnter new filename: ")i = 0for source in os.listdir(path):    destination =name + str(i)     os.rename(source, destination)    i += 1感谢您的帮助!
查看完整描述

2 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

os.rename不关心扩展名(“文件类型”,如您所说),但 Windows 关心。如果没有扩展名,Windows 就不知道该文件是什么。


您可以在重命名之前提取文件的扩展名并将其附加到新名称。


您可以使用os.path.splitext获取原始扩展名:


old_name, extension = os.path.splitext(old_filename)

new_filename = new_name + extension

os.rename(old_filename, new_filename)

在你的情况下:


for i, source in enumerate(os.listdir(path)):

    old_name, extension = os.path.splitext(source)

    destination = name + str(i) + extension

    os.rename(source, destination)


查看完整回答
反对 回复 2023-03-01
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

这是关于文件扩展名的。Windows 使用该扩展名来选择用于打开该文件的应用程序。

如果没有扩展名,Windows 将无法选择要使用的程序。但是,如果您使用正确的程序打开文件,就不会有任何问题。


查看完整回答
反对 回复 2023-03-01
  • 2 回答
  • 0 关注
  • 69 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信