![](/img/trans.png)
[英]match and replace string items in list with string items from another list
[英]Match string from list of string
def email_delete(brwser):
user_input = input("Would you like to delete some emails?: > Y/N")
key_words = ["Order", "order", "Re:", "Purchase"]
# email_indi_subject = []
email_search(brwser)
sleep(3)
email_subjects = brwser.find_elements_by_xpath("//span[@data-testid='message-
column:subject']")
if user_input == "y" or user_input == "Y":
sleep(2)
try:
for subject in email_subjects:
# sleep(0.25)
# print(subject.get_property('title'))
# email_indi_subject.append(str(subject.get_property('title')))
if any(words in str(subject.get_property('title'))
for words in key_words):
print("Keep > " + subject.get_property('title'))
else:
print("Loss > " + subject.get_property('title'))
except StaleElementReferenceException as sers:
print(sers)
'''for keyw in key_words: # printing 4 times checking each individual keyword ??works i think??
for subject in email_indi_subject:
if keyw in subject:
print("Keep: > " + subject)
else:
print("Loss: > " + subject) '''
我一直在嘗試將列表中的單詞與每個 email 的單個主題(字符串)匹配,但問題是我似乎無法將列表中的單詞與單個主題匹配。 在底部這樣做我相信它有效但顯然有它的垮台。
ZoidEEE,當您嘗試從用戶那里獲取輸入時,您可以使用.upper()
。 此方法將字符串中的所有小寫字母轉換為uppercase
。 所以你可以在 if 語句中使用y
而不是"y"
或"Y"
。
我認為您唯一要更改的行是:
if any(words in str(subject.get_property('title')) for words in key_words):
由於您至少需要一個匹配項,因此定義此 function:
def any_match(string, patterns):
for pattern in patterns:
if pattern in string:
return True
return False
並將上面提到的行替換為:
if any_match(str(subject.get_property('title')), key_words):
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.