如何使用re解析python中的列表

时间:2016-07-14 11:06:44

标签: python regex bash

我正在尝试解析列表以获取bash脚本返回的各个图像(存储在py脚本中的列表错误中)。我怎么能用“re”做到这一点?

bash脚本

#!/bin/bash
value(){
for entry in *
do
if expr "$(file -b $entry)" : 'JPEG ' >/dev/null; 
then
    echo -e "$entry"
fi  
done
}
value

python代码

import subprocess
errors = [subprocess.check_output(['/black.sh'])]
print errors

输出

11_37_24.jpeg
11_38_02.jpeg
11_39_56.jpeg
11_40_20.jpeg
11_40_32.jpeg
11_45_03.jpeg

列表"errors"被分配了一个长度为1的字符串:

errors = ["11_37_24.jpeg 11_38_02.jpeg 11_39_56.jpeg 11_40_20.jpeg 11_40_32.jpeg 11_45_03.jpeg"]

但是,我想单独获取这些图像以在html页面中使用它。我怎么能用“重新”做到这一点?还有其他选择吗?

1 个答案:

答案 0 :(得分:0)

我做了一些假设(基于您给出的示例输入):

  • 文件名只包含数字和下划线(因此我可以在正则表达式中使用\w
  • 文件名中的单词始终以下划线(无空格)连接
  • 每个文件都是jpeg文件

代码:

import re

errors = ["11_37_24.jpeg 11_38_02.jpeg 11_39_56.jpeg 11_40_20.jpeg 11_40_32.jpeg 11_45_03.jpeg"]

re.findall('\w+\.jpeg', errors[0])
['11_37_24.jpeg', '11_38_02.jpeg', '11_39_56.jpeg', '11_40_20.jpeg', '11_40_32.jpeg', '11_45_03.jpeg']

如果我的假设对您的项目有误,那么re可能就不可能了。

修改

OP使用以下代码(在评论中给出):

errors[0].split('\n')