Чтение файла иногда возвращает пустую строку - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть следующий код:

my_dir = os.path.dirname(__file__)
excludes_file_path = os.path.join(my_dir, 'excludes.txt')

with open(excludes_file_path, 'r') as f:
    print('start pos', f.tell())
    excludeLines = [line.rstrip('\n') for line in f]
print('excludes', excludeLines)

Когда я запускаю этот код, я получаю чередующийся отпечаток:

start pos: 0
excludes: ['string', 'string']

start pos: 0
excludes: []

Я иногда читал о том, что файл находится в концекогда это читается раньше.Я пытаюсь предотвратить это с помощью опции 'r' при открытии файла.Кроме того, стартовая позиция всегда равна 0. Я также пытался сделать f.seek(0).Но это все еще будет чередоваться.Единственный способ получить первый результат - удалить полоску.Мне нужно, чтобы конечная новая строка была снята со строк.Что происходит?

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Я нашел проблему.Позже я снова открыл файл для записи и позже закрыл его.Каким-то образом один и тот же код, запускаемый дважды, портит это.Спасибо за помощь другим.

0 голосов
/ 21 декабря 2018

Мне трудно воспроизвести ошибку, которую вы получаете.Однако, если все, что вы пытаетесь сделать, это поместить файл в список, где каждая строка представляет собой отдельную запись, тогда вы можете использовать f.read().splitlines() и можете отбросить понимание списка.Это удалит "\ n".

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