如何将文件移动到 python 中的特定文件夹 (unicode)

how to move file to specific folder(unicode) in python

我想将文件移动到特定文件夹。
但是,由于 Unicode 问题,文件没有被移动。

import os
import shutil

file=r"c:/test/test.rar"
folder=r"c:/test/発射"

shutil.move(file, folder)
#os.rename(file, os.path.join(folder, os.path.split(file)[1]))

"shutil.move" 和 "os.rename" return“[Errno 22] 无效模式 ('wb') 或文件名”和 "WindowsError: [Error 123] file name"。他们不识别 Unicode 文件名。
找了很多解决方案,都没有解决。
这个能解决吗?
预先感谢您的帮助。

尝试使用系统编码对文件夹名称进行编码:

import sys

folder = r"c:/test/発射".encode(sys.getfilesystemencoding())

此外,如果您想使用 os.rename,我建议您以这种方式重写您的行:

os.rename(file, os.path.join(folder, os.path.basename(file)))

自 NT 3 版本以来,Windows 本身允许使用 unicode 文件名,前提是字符位于基本多语言平面中(unicode 代码小于或等于 U+FFFF)。简单地说,您应该在文件夹名称中添加一个“/”。所以这应该在 Python 3 中工作,如果文件夹存在:

file="c:/test/test.rar"
folder="c:/test/\u767a\u5c04/"

shutil.move(file, folder)

我强制为非 ascii 字符使用 unicode 代码,因为编辑器可能会使用错误的编码