[英]input based txt file searcher results in triggering else statement depending on the input
with open("10kkpw.txt", "r", encoding="utf-8") as f:
text = f.read()
for line in text:
search = input("What are you looking for ")
if search in line:
print(line)
else:
print("Nope")
break
你好,
我有一個主要的(從我的角度來看)問題。 我試圖對我的搜索器進行編碼,但遇到了一個奇怪的問題。
如您所見,我的程序打開了一個文本文件,該文件被預先確定為 open function 的參數。 目前沒有什么了不起的。 文本文件由一個包含數據的列表組成。
for line in text:
print(line)
它開始獨立打印出每個字符。
這就是為什么我將“文本”變量更改為
text = f.read().splitlines()
當我想在“for循環”中使用 if/else 語句時,問題就開始了:
即使是最簡單的形式
for line in text:
search = "a"
if search in line:
print(line)
else:
print("nope")
break
它直接進入“else”語句並將“nope”打印為 output。 它實際上在該特定文件中找到某些內容的唯一情況是當我嘗試查找“1”時。
然而,在不同的文件中,它有時能夠找到更多的文件,但它不願意找到除此之外的任何東西,即使該文件實際上具有我正在尋找的字符串。 另一方面,該腳本可以在不同的文件中找到某些不是數字的字符。
這種奇怪行為的原因可能是什么? 或者它可能按預期工作?
問候,丹尼爾。
您是否嘗試過將read()
切換到readlines()
? 如果您只使用read()
,它將為您提供與\n
連接在一起的所有行。
with open("10kkpw.txt", "r", encoding="utf-8") as f:
text = f.readlines()
print(text)
for line in text:
search = input("What are you looking for ")
if search in line:
print(line)
else:
print("Nope")
break
我注意到您確實嘗試f.read().splitlines()
,這應該是等效的。 如果您可以提供示例文本文件的前幾行,則可能會提供有助於調試的信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.