我第一次尝试使用 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)
喵喵时光机
TA贡献1846条经验 获得超7个赞
这是关于文件扩展名的。Windows 使用该扩展名来选择用于打开该文件的应用程序。
如果没有扩展名,Windows 将无法选择要使用的程序。但是,如果您使用正确的程序打开文件,就不会有任何问题。
添加回答
举报
0/150
提交
取消