python如果文件名是“ blah”和“ blah”

时间:2019-01-22 22:12:03

标签: python

我正在尝试确定我的文件名是否包含两个值。
我这样做是为了找到特定的文件扩展名:

import os
for root, dirs, files in os.walk("myDir"):
  for file in files:
    if file.endswith(".jpg"):
      print(os.path.join(root, file))

现在我想做这样的事情:

import os
for root, dirs, files in os.walk("myDir"):
  for file in files:
    if file.contains("string1" & "string2"):
      print(os.path.join(root, file))

显然以上方法不起作用,因为python字符串方法中没有“包含”。我看到了一个发现,但无法弄清楚如何使用两个值。

这个想法是,如果文件名具有“ state”和“ california”,那么它将打印出来。在此示例中,将显示“ iliveinstateofcalifornia.jpg”。

2 个答案:

答案 0 :(得分:2)

您可以使用all函数。这样,您可以扩展列表,而无需更改if条件。

values = ['string1', 'string2']
if all(file.contains(value) for value in values):
    # Do something

答案 1 :(得分:1)

可能没有contains()方法,但是有关键字“ in”。例如,

if 'state' in file and 'California' in file:
  print('Do things with stuff')

也就是说,几乎肯定有更有效的检查字符串包含的方法。如果文件名具有相同的格式,并且您将反复检查许多文件名,则使用已编译的正则表达式可能会更有效。有关更多信息,请参阅Python模块“ re”的文档,available here.