2017-08-08 41 views
2

我有關鍵字的文本文件中的每一行,像這樣:Python字符串比較不匹配從文件中讀取一行

foo 
foo1 
^^^^^^^^^ 
foo5 
foo7 

^^^^^^^^^是一個標誌設置,打破了循環一度達到:

keywords = [] 
    with open("keywords.txt") as f: 
     for line in f: 
      if line.startswith(request.GET.get('search', '')): 
       keywords.append(line.lower()) 
      if line == "^^^^^^^^^": 
       break 

在上面的代碼中,從未滿足第二個條件(**if line == "^^^^^^^^^":**)。

我也試過is而不是==(但沒想到它的工作,它沒有)。

當我試着line.startswith("^^^^^^"):,條件滿足,循環結束。我想知道爲什麼==在上述情況下不起作用。

尋找一些方向和解釋。

+1

你嘗試新行「\ n」結束?使用'repr(line)'來查看該行的實際內容。 –

+0

感謝提示@AshwiniChaudhary,下次我遇到類似的問題時會派上用場。我在字符串的末尾添加了\ n,並且條件已通過。 –

回答

3

有可能是一個換行符或其他空格在行的末尾,所以==將無法​​正常工作,除非你先修剪:在

if line.strip() == "^^^^^^^^^": 
+0

這樣做的技巧,謝謝:) –

相關問題