Я работаю с Python 3.3 с помощью PyDev для Eclipse, Хорошо, так что это мой код:Python 3.3 readlines усечения текстового файла
countdata = open(countfilename, 'r')
countlist = countdata.readlines()
print(len(countlist))
genecountline = wordlist(countlist[-1])
print(genecountline)
countfilename
относится к довольно длинному текстовому файлу 7847 строк, который генерируется из текстовый файл с использованием сценария, предоставленного мне инструктором в классе машинного обучения (мне пришлось преобразовать указанный скрипт в Python 3 с использованием 2to3).
wordlist
- простая функция, которую я построил, которая берет строку текста и возвращает слова в ней в виде списка.
Я вытащил весь файл в список строк, чтобы я мог ссылаться на определенные строки по своему усмотрению. Могу ли я читать их все сразу с readlines или перебирать файл и добавить строки в список по одному, как это:
countdata = open(countfilename, 'r')
countlist = []
for line in countdata:
countlist.append(line)
не имеет значения. Так или иначе, print(len(countlist))
дает мне приблизительно 7630
, я говорю примерно потому, что иногда это 7628
или выше, чем 7633
. Конкретная строка, возвращаемая countlist[-1]
, всегда отличается (файл построен с использованием объекта-генератора, так как мой инструктор построил этот скрипт, и я не совсем уверен, как именно он работает).
genecountline = wordlist(countlist[-1])
print(genecountline)
Я поставил, чтобы посмотреть, что думает python, последняя строка файла. И когда я открываю файл в текстовой панели, возвращаемая строка на самом деле является номером строки, возвращаемым len(countlist)
. Другими словами, он, кажется, игнорирует последнее приближение. 210 строк моего файла. Поэтому мой вопрос заключается в том, как я могу это исправить, и как я могу предотвратить повторение этого?
, добавляя код для 'wordlist()' может помочь решить проблему – MattDMo