我第一次嘗試使用 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條經(jīng)驗 獲得超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條經(jīng)驗 獲得超7個贊
這是關于文件擴展名的。Windows 使用該擴展名來選擇用于打開該文件的應用程序。
如果沒有擴展名,Windows 將無法選擇要使用的程序。但是,如果您使用正確的程序打開文件,就不會有任何問題。
添加回答
舉報
0/150
提交
取消