Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TypeError:应为字符缓冲区对象_Python - Fatal编程技术网

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:

您能提供完整的代码吗?#/usr/bin/python import os path=os.getcwd()file_list=os.listdir(path)打印“未更改%s”,文件中i的文件_list os.chdir(path)文件_list:print”“+i after_change=os.rename(i,i.translate(None,“0123456789”))运行
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)
或其他东西