Python,如何用汉字重命名文件

问题描述 投票:0回答:1

无法重命名含有汉字的文件

我试过这个

os.rename(file, file.replace(os.path.basename(file),"") + f"{str(filename)}.{filemenu.get()}")

还有这个

shutil.move(file, file.replace(os.path.basename(file),"") + f"{str(filename)}.{filemenu.get()}")

但是当我尝试用中文字符重命名文件时,它给了我错误

1 代码给出

OSError: [WinError 123] Синтаксическая ошибка в имени файла, имени папки или метке тома: 'C:/Users/danil/OneDrive/Документы/kwork/zvukogram/outputtest\\prj_23897614_d41d8cd98f00b204e9800998ecf8427e_1694617003.mp3' -> 'C:/Users/danil/OneDrive/Документы/kwork/zvukogram/outputtest\\今天 天气 很冷吗?.mp3'
错误,2 代码给出
OSError: [Errno 22] Invalid argument: 'C:/Users/danil/OneDrive/Документы/kwork/zvukogram/outputtest\\今天 天气 很冷吗?.mp3'

python file chinese-locale chinese-simplified chinese-traditional
1个回答
0
投票

嘟嘟..噗噗...噗噗...

由于编码问题,用中文字符重命名文件有时会很棘手。 尝试在重命名文件时指定编码。 使用 UTF-8 来执行此操作。

new_name_encoded = new_name.encode('utf-8')
© www.soinside.com 2019 - 2024. All rights reserved.