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

我第一次尝试使用 os 模块一次重命名多个文件。但是,似乎我必须指定文件类型。否则,该文件将无法再打开。它变成了这样:

http://img.mukewang.com/63ff064f00010d5012420721.jpg

但是我可以在不指定文件类型的情况下这样做吗?我怎么做?


当我没有指定时,我当前的代码是这样的


import os


option = 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 = 0

for source in os.listdir(path):

    destination =name + str(i) 

    os.rename(source, destination)

    i += 1

感谢您的帮助!


炎炎设计
浏览 97回答 2
2回答

慕容森

os.rename不关心扩展名(“文件类型”,如您所说),但 Windows 关心。如果没有扩展名,Windows 就不知道该文件是什么。您可以在重命名之前提取文件的扩展名并将其附加到新名称。您可以使用os.path.splitext获取原始扩展名:old_name, extension = os.path.splitext(old_filename)new_filename = new_name + extensionos.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)

喵喵时光机

这是关于文件扩展名的。Windows 使用该扩展名来选择用于打开该文件的应用程序。如果没有扩展名,Windows 将无法选择要使用的程序。但是,如果您使用正确的程序打开文件,就不会有任何问题。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python