繁体   English   中英

python替换特殊字符

[英]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.

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