从字母数字字符串中提取文本

嗨,你们好。
我正在尝试编写一段代码,该代码读取形式为"ga_z7.25.sae"和"ga_z0.02563.sae"的对象的文件名,并将十进制数字部分仅存储到列表中。
到目前为止,我有以下几点:

选择 | 换行 | 行号
  1. import glob
  2. import sys, os
  3.  
  4. #Open folder with files
  5. filelist = glob.glob("/home/clemence/Desktop/testing/*.sae")
  6.  

打印文件列表为我提供了以下信息:
/home/clemence/Desktop/testing/gal_z0.275.sae'
文件列表中的每一项都包含我需要的数字。我所需要的是一种忽略文本并只将数字放入另一个列表中的方法。
请帮帮忙

# 回答1


这可以使用正则表达式来完成。

选择 | 换行 | 行号
  1. >>> results = ["gal_z7.25.sae", "gal_z0.02563.sae"]
  2. >>> import re
  3. >>> patt = re.compile(r"[^0-9.]+([0-9]+.[0-9]+)")
  4. >>> for item in results:
  5. ...     print patt.match(item).group(1)
  6. ...     
  7. 7.25
  8. 0.02563
  9. >>> 

标签: python

添加新评论