Читатель Python CSV: усечение начала файла? Первые 44797 строк отсутствуют - PullRequest
0 голосов
/ 12 октября 2019

У меня есть файл .csv, который я хочу прочитать с помощью Python (3.x), используя пакет csv. Однако программа усекает начало файла (первые 44797 строк).

Файл .csv, о котором идет речь, можно загрузить по этой ссылке: https://www.kaggle.com/dgomonov/new-york-city-airbnb-open-data/downloads/new-york-city-airbnb-open-data.zip/3

file = "C:\\Users\\Owner\\Pictures\\Camera Roll\\new-york-city-airbnb- 
open-data\\AB_NYC_2019.csv"
rowsn = []
coln = []
with open(file, encoding="utf8") as csvfile:
    csvreader = csv.reader(csvfile)
    coln.append(0)
    for row in csvreader:
        rowsn.append(row)
        print("Appending" + str(row))
    for q in rowsn:
        for r in q:
            print(r, end="        ")
        print("\n")

Я ожидалВесь файл должен быть напечатан на терминале построчно. Однако первые 44797 строк не появляются на экране. Пожалуйста помоги. Спасибо.

1 Ответ

0 голосов
/ 14 октября 2019

Тот факт, что вы можете разбить и увидеть 1-ю строку, означает, что ваш консольный вывод прокручивается слишком быстро.

Оболочка, содержащая ваш вывод, имеет буфер около 4098 строк. Если вы печатаете 50 000 строк, первые (50 000-4098) строки прокручиваются так быстро, что вы их не видите. Буфер содержит только последние 4098 строк, поэтому вы можете прокручивать только назад.

Если вы действительно хотитечтобы пролистать 500 тыс. строк, дайте себе время прочитать:

for linecount, q in enumerate(rowsn,1):
    for r in q:
        print(r, end="        ")
    print("\n")
    if not linecount % 4000:         # every 4000 lines, ask for return press
        intput("Hit return...")

Теперь вам нужно нажимать клавишу возврата примерно 126 раз или около того ... в качестве альтернативы вы можете изучить, как увеличить буфер вашей консоли - дляКонсоль default-windows, вы получите дополнительные советы здесь: Как изменить размер экранного буфера в командной строке Windows из пакетного скрипта

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...