我正在尝试确定我的文件名是否包含两个值。
我这样做是为了找到特定的文件扩展名:
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”。
答案 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.