2016-01-22 1 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

Становитесь, что ОП задавал «Как я могу сделать данные списком, где каждый элемент является строкой из текстового файла?» –

 Смежные вопросы

  • Нет связанных вопросов^_^