从字符串中提取值

6 浏览
0 Comments

从字符串中提取值

我有一个由ZipFile的namelist()生成的字符串,我想将pdf文件的文件名保存在一个变量中:

with ZipFile(zipfile, 'r') as f:
    filelist = f.namelist()
    print(filelist)

输出结果是:['test.pdf', 'image_3.png', 'image-1.jpg', 'text-2.txt']

例如,我想将值"test.pdf"存储在变量pdfname中。

0
0 Comments

从以上代码中可以看出,代码的目的是从一个zip文件中提取出所有以".pdf"结尾的文件名,并将其打印出来。这个问题的出现是因为需要从一个字符串中提取出特定的值,即满足条件的以".pdf"结尾的文件名。下面将给出解决这个问题的方法。

方法一:

使用Python的内置函数filter()和lambda表达式,将字符串中的所有文件名传入filter()函数中,并使用lambda表达式检查每个文件名是否以".pdf"结尾,最后将满足条件的文件名存入一个列表中。

filelist = list(filter(lambda x: x.endswith(".pdf"), filenames))

方法二:

使用正则表达式re.findall(),调用该函数并传入匹配规则,即以".pdf"结尾的文件名的正则表达式,对输入的字符串进行匹配,并返回匹配到的所有结果,最后将结果存入一个列表中。

import re
filelist = re.findall(r'\b\w+\.pdf\b', filenames)

以上是解决从字符串中提取特定值的两种方法,可以根据具体的需求选择适合的方法来解决问题。无论是使用filter()函数还是正则表达式,都可以快速、高效地从字符串中提取出满足条件的值。

0