>>> A = B'\NSF'
>>> A.decode('gbk')
'\\NSF'
>>> AA = B'\NSF\NSF\NSF'
>>> AA.decode('gbk')
'\\NSF\\NSF\\NSF'
>>> a = b'\nsf\nsf\nsf'
>>> a.decode('gbk')
'\nsf\nsf\nsf'
>>> a=b'xff\xff\xff'
>>> a.decode('gbk')
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
a.decode('gbk')
UnicodeDecodeError: 'gbk' codec can't decode byte 0xff in position 3: illegal multibyte sequence
>>> a.decode('gbk','ignore')
'xff'
>>> a.decode('gbk','replace')
'xff��'
>>>
"秘密就在第二个参数,将它设置为以下两个值有特殊作用:"
'ignore':忽略错误字符
'replace':将错误字符替换为问号。
所以这时候就可以很好地解决编码问题了,
假如想要自定义替代的字符串的话可以使用replace将问号
(注意这个问号不是一般的问号,是一个菱形里面套着一个问号,除非是乱码否则很少见)替换成你想要的字符即可。
真棒!问题完美解决,撒花!
华丽分割线 你要的源码献上~
#批量修改文件名
#批量修改图片文件名
#功能
#以批量修改某文件夹下所有图片名称为例
# 注释超详细,万能模板,读者可举一反三,适当修改模板,效果显著!
import os
import sys
import re
def renameall():
#filelist = os.listdir(r"文件所在路径") #待修改文件夹
filelist = os.listdir(r"C:\\Users\66860\\Desktop\\AI_疯\\图片")
print("修改前"+str(filelist)) #输出文件夹中包含的文件
currentpath = os.getcwd() #得到进程当前工作目录
os.chdir(r"C:\\Users\66860\\Desktop\\AI_疯\\图片") #将当前工作目录修改为待修改文件夹的位置
num =1 #名称变量
for fileName in filelist: #遍历文件夹中所有文件
pat=".+\.(jpg|png|gif|jfif)" #匹配文件名正则表达式 # 此处为修改图片案例,故使用图片格式
pattern = re.findall(pat,fileName) #进行匹配
os.rename(fileName,(str(num)+'.'+pattern[0])) #文件重命名
num += 1 # 改变编号,继续下一项
print("=========---风-阶-限---===========")
os.chdir(currentpath) #改回程序运行前的工作目录
sys.stdin.flush() #刷新
print("修改后:"+str(os.listdir(r"C:\\Users\66860\\Desktop\\AI_疯\\图片"))) #输出修改后文件夹中包含的文件
print("==========--修改完成--===========")
renameall()
修改前 我是这样的 ~
修改后 我变得规矩了 -.-
15
2018-09-05 亲测!
欢迎试用。