如何将文件移动到 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 代码,因为编辑器可能会使用错误的编码
我想将文件移动到特定文件夹。
但是,由于 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 代码,因为编辑器可能会使用错误的编码