Python:如何在列表中找到与元素名称的一部分匹配的元素

时间:2017-05-23 14:09:04

标签: python list csv

我有一个要从文件名列表中查找的关键字列表。例如,如果关键字为'U12',我想找到包含'U12'的{​​{1}}的csv文件并将其打印出来。

'h_ABC_U12.csv'

这是代码的一部分,但在某些搜索后无法继续。 我需要与要打印的单词匹配的全名。

6 个答案:

答案 0 :(得分:1)

试试这个 -

$('#tableshow > tbody  > tr > td').each(function(td) { alert(td)});

答案 1 :(得分:1)

您可以使用列表理解来尝试:

word = ['U12','U13','U14']
file_list =['h_ABC_U12.csv','h_GGG_U13.csv','h_HVD_U14.csv','h_MMMB_U15.csv']

print [i for i in file_list for b in word if b in i]

答案 2 :(得分:1)

我建议使用os.path.splitext获取不带扩展名的文件名。

>>> from os.path import splitext
>>> for f in file_list:
...     name = splitext(f)[0]
...     if any(name.endswith(tail) for tail in word):
...         print(name)
... 
h_ABC_U12
h_GGG_U13
h_HVD_U14

答案 3 :(得分:0)

当然

for x in range(len(word)):
    for file in file_list:
        if x in file:
            print file

会做这个工作吗?

答案 4 :(得分:0)

这应该表现得更好:

for file_name in file_list:
    the_word = next((w for w in word if w in file_name), None)
    if the_word:
        print the_word
        print file_name

或者获取所有文件名列表:

[file_name for file_name in file_list if next((w for w in word if w in file_name), None)]

答案 5 :(得分:0)

word = ['U12','U13','U14']
file_list = ['h_ABC_U12.csv','h_GGG_U13.csv','h_HVD_U14.csv','h_MMMB_U15.csv']

for file_name in file_list:
  for w in word:
    if w in file_name:
      print(w,file_name)

<强> RESULT

U12 h_ABC_U12.csv
U13 h_GGG_U13.csv
U14 h_HVD_U14.csv