我的目标是获取名称以ext中任何项目结尾的文件。我有以下代码:

ext=["n.log",".shm","rage"]

for filename1 in os.listdir(os.getcwd()):
    if filename1.endswith(tuple(ext)):
          src=os.getcwd()+'/'+filename1
          irun_log=os.path.basename(src)


使用Python 2.4运行此代码,出现以下错误:

Traceback (most recent call last):
  File "./compile", line 141, in ?
    if filename1.endswith(tuple(ext)):
TypeError: expected a character buffer object


感谢您提供任何帮助解决此问题的方法。

最佳答案

在Python 2.5中将字符串元组传递到str.endswith()的功能是introduced


  str.endswith(后缀[,开始[,结束]])
  
  如果字符串以指定的后缀结尾,则返回True,否则返回False。后缀也可以是要查找的后缀元组。使用可选的启动,从该位置开始测试。在可选端,停止在该位置进行比较。
  
  在版本2.5中更改:接受元组作为后缀。

10-04 20:57