2016-01-22 61 views
-3

我正在編寫一個程序,用於評估輸入密碼的強度。一個函數會將密碼與我擁有的百萬個通用密碼的主列表進行比較。在Python中讀取文本文件時,每行都有一行中的元素

當讀取文本文件,我使用的是:

import io 

with io.open('MasterList.txt', encoding='latin-1') as myfile: 
    data=myfile.read().replace('\n', '') 

但打印像data[0]給我的第一字符代替第一的。我怎樣才能讓data成爲一個列表,其中每個元素都是來自文本文件的一行?每行以\n結尾。我必須以某種方式將它用作新行開始處的標記嗎?

+4

使用readlines(),不需要更換\ n –

+0

謝謝,這有效! – Kos

+1

在這種情況下,讀取和循環文件可能會有點低效。那麼把密碼放入數據庫呢? Sqlite數據庫也只是一個文件,你可以比文本文件更好地管理和查詢它的內容 – yedpodtrzitko

回答

1
import io 

data = [] 
with io.open('MasterList.txt', encoding='latin-1') as myfile: 
    for i in myfile.readlines(): 
     data.append(i) 

然後可以循環data並與進入password比較。您可以使用:

if password in data: 
    print "Password found in data" 
+0

幾乎很好......但你爲什麼要將這些行緩衝到'data'中呢? – xtofl

+0

正因爲如此,OP纔會問「我怎樣才能讓數據成爲一個列表,其中每個元素都是來自文本文件的一行?」 –

相關問題