В файле с помощью python мы можем прочитать весь файл строки за строкой или по строкам, я хочу прочитать определенную строку (пример строки 24), не читая весь файл и все линии.прочитайте определенную строку в файле csv, python
ответ
Вы можете использовать linecache.getline:
linecache.getline (имя файла, LINENO [, module_globals])
Получить строки LINENO из файла с именем файла. Эта функция никогда не вызовет исключения - она вернет '' на ошибки (завершающий символ новой строки будет включен для найденных строк).
import linecache
line = linecache.getline("foo.csv",24)
Или использовать consume recipe от itertools для перемещения указателя:
import collections
from itertools import islice
def consume(iterator, n):
"Advance the iterator n-steps ahead. If n is none, consume entirely."
# Use functions that consume iterators at C speed.
if n is None:
# feed the entire iterator into a zero-length deque
collections.deque(iterator, maxlen=0)
else:
# advance to the empty slice starting at position n
next(islice(iterator, n, n), None)
with open("foo.csv") as f:
consume(f,23)
line = next(f)
Я не знал, что 'open' возвратил итерабель ... – xtofl
@xtofl, файловый объект это его собственный итератор, когда вы 'для строки в f: ...', затем повторно назовите –
и начните чтение с а не с самого начала? он работает только с потреблением (f, X) и увеличивает X каждый раз (инициализируйте X в нужном месте), спасибо за полезный ответ :) – user3967257
возможно дубликат [Начать чтение и запись на определенной строке в формате CSV с Python] (http://stackoverflow.com/questions/11618207/start-reading-and-writing-on-specific-line-on-csv-with-python) – GhitaB