【发布时间】:2017-04-02 16:16:40
【问题描述】:
我想将文件复制到 windows7 64 位中的新位置。但是我发现文件名中的一些特殊字符在使用shutil.copy2时会导致错误22(但是这个文件在windows GUI中是合法的,可以用鼠标复制)。我相信 error22 意味着无法通过引用此文件名找到源文件。所以我的解决方法是删除或替换任何文件名中的特殊字符,这会在 windows7 64 位中导致此问题。通常,用户不断将文件从其他文件夹复制到此文件夹,因此文件名必须由一些变量而不是常量处理。但作为一个例子,我只是在示例代码中放了两个文件名。我把图中所示的代码:
# -*- coding: gbk*-
#!/usr/bin/python
#Filename:ae.py
import os,shutil,time,re,string,sys #re is regular expression
from nt import chdir
import win32api,win32file
import unicodedata,codecs
scr=r"C:\Users\Administrator\Desktop\« How-To Geek Forums.pdf"
des="C:\\Users\\Administrator\\Desktop\\How-To Geek Forums.pdf"
#chdir(os.path.dirname(scr))
os.rename(scr,des)
我得到了
WindowsError:[Error 123]
我认为这意味着一旦有一些特殊字符,例如 «
,我什至无法使用 python 脚本重命名它【问题讨论】:
-
感谢 kmario23,我很难通过编辑来改进格式
-
这个问题是关于在另一个问题link 中提出的原始问题的解决方法。所以如果能解决这个问题,这个问题就不存在了
标签: python string character encode