Python readline () на Mac - PullRequest
       3

Python readline () на Mac

1 голос
/ 24 июня 2011

Новичок в python и попытка изучить цепочки ввода / вывода файлов.

Работа с вытягиванием строк из большого (2 миллиона строк) файла в следующем формате:

56fr4
4543d
4343d
hirh3

Я читал, что readline () лучше, потому что он не вытягивает весь файл в память.Но когда я пытаюсь прочитать документацию , кажется, что это только Unix?И я на Mac.

Могу ли я использовать readline на Mac без загрузки всего файла в память?Каков будет синтаксис простого чтения строки 3 в файле?Примеры в документах немного над моей головой.

Редактировать

Вот функция для возврата кода:

def getCode(i):
    with open("test.txt") as file:
        for index, line in enumerate(f):
            if index == i:
                code = # what does it equal?
                break
    return code

Ответы [ 2 ]

11 голосов
/ 24 июня 2011

Вам не нужно readline:

with open("data.txt") as file:
    for line in file:
        # do stuff with line

Это будет построчно читать весь файл, но не все сразу (поэтому вам не нужна вся память).Если вы хотите прервать чтение файла, потому что вы нашли нужную строку, используйте break, чтобы завершить цикл.Если вы знаете индекс нужной вам строки, используйте это:

with open("data.txt") as file:
    for index, line in enumerate(file):
        if index == 2: # looking for third line (0-based indexes)
            # do stuff with this line
            break # no need to go on
0 голосов
/ 25 июня 2011

+ 1 @ SpaceC0wb0y

Вы также можете сделать:

f = open('filepath')
f.readline() # first line - let it pass
f.readline() # second line - let it pass
third_line = f.readline()
f.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...