Python TypeError:应为字符缓冲区对象
我正在尝试翻译没有编号的文件名。我遇到以下错误:Python TypeError:应为字符缓冲区对象,python,Python,我正在尝试翻译没有编号的文件名。我遇到以下错误: >>> file ="1abc89.jpg" >>> os.rename(file,file.translate(None,"0123456789")) Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: expected a character buffer object >>file=“1ab
>>> file ="1abc89.jpg"
>>> os.rename(file,file.translate(None,"0123456789"))
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: expected a character buffer object
>>file=“1abc89.jpg”
>>>重命名(file,file.translate(无,“0123456789”))
回溯(最近一次呼叫最后一次):
文件“”,第1行,是否在中?
TypeError:应为字符缓冲区对象
我试着搜索了几条线索,但没有找到要点 Python 3.4:
>>> import os
>>> name = '1abc89.jpg'
>>> name.translate(str.maketrans('','','0123456789'))
'abc.jpg'
>>> os.rename(name,name.translate(str.maketrans('','','0123456789')))
Python 2.7:
>>> import os
>>> name = '1abc89.jpg'
>>> name.translate(None,'0123456789')
'abc.jpg'
>>> os.rename(name,name.translate(None,'0123456789'))
参考资料:
- Python 2.7:
- Python 3.4:
file.translate(None,“0123456789”)时是否有错误
all one's?提供Python版本和一个最小的、可复制的示例。对于3.x,使用顺序查找通常被认为是“更好的做法”,例如:name.translate({ord(k):在'0123456789'中k没有)})
这正是maketrans()生成的内容。@Rajesh等等-你在使用Python 2.4.3吗?现在是2015年,你知道吗这就是为什么我要求使用Python版本…我无法从任何一个版本中获取他的错误消息。@Mark guess您最好插入re.sub('\d+','',name)
,然后。。。或者一个.join(如果不是ch.isdigit(),则ch代表名称中的ch)
或其他东西