[英]python replace special character
我想将文件复制到Windows7 64bit中的新位置。 但是我发现文件名中的某些特殊字符在使用shutil.copy2时可能会导致错误22(但该文件在Windows GUI中是合法的,可以用鼠标复制)。 我相信error22表示通过引用此文件名找不到源文件。 因此,我的解决方法是删除或替换任何文件名中的特殊字符,这会在Windows7 64bit中导致此问题。 通常,用户始终将文件从其他文件夹复制到此文件夹,因此文件名必须由某些变量而不是常量处理。 但作为示例,我只在示例代码中放入了两个文件名。 我将图片中显示的代码放入:
# -*- 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]
我认为这意味着,一旦有一些特殊字符(例如«
因此,看起来您正在创建一个正则表达式以匹配文件名的模式,但是您已经知道名称了吗?
当您说特殊字符时,您是专门谈论空白吗?
这是您的可读性代码:
#!/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)
查看http://docs.python.org/library/os.html#os.listdir
我可能只会得到目录中的文件列表
chdir(os.path.dirname(scr)
files = os.listdir(“.”)
for name in files:
os.rename(name,des+”/“+name)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.