Python,如何用中文字符重命名文件

Python, how to rename file with chinese characters

提问人:farge_goty 提问时间:9/14/2023 最后编辑:farge_goty 更新时间:9/14/2023 访问量:68

问:

无法重命名带有中文字符的文件

我试过了这个

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

Python 文件 环境 、繁体中文

评论

1赞 John Gordon 9/14/2023
但它给了我错误我们应该猜测错误是什么吗?
0赞 farge_goty 9/14/2023
好的,我添加了错误
1赞 Karl Knechtel 9/14/2023
这几乎可以肯定与 Python 无关,而与 Windows 有关;并且可能特定于 Windows 的俄语本地化。
4赞 MatBailie 9/14/2023
文件名不能包含字符?
2赞 MatBailie 9/14/2023
尝试手动将文件重命名为所选文本,只有在它以这种方式工作之后,python才有机会。

答:

0赞 Justahelper 9/14/2023 #1

嘟嘟响。。国际 收支平衡。。。嘘......

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

new_name_encoded = new_name.encode('utf-8')

评论

0赞 tdelaney 9/14/2023
所以你有一个不能与重命名一起使用的字节对象。如何帮助?