繁体   English   中英

如何将文件移动到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”返回“ [[Errno 22]无效模式('wb')或文件名”和“ WindowsError:[Error 123]文件名”。 他们无法识别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代码,因为编辑器可能使用了错误的编码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM