2016-05-08 2 views
0

У меня есть большой файл с именем random.txt, содержащий много 1 и 0. Я пытаюсь читать каждое значение с помощью этого скрипта:Чтение файла посимвольно в Python

random_file = open("random.txt", "r") 
while True: 
    char = random_file.read(1) 
    if not char: break 
    print char 

Проблема заключается в том, что иногда вместо печати 0 или 1 как символ, он печатает 010, поэтому он читает три раза.

Я использую Python 2.7.9

Ожидаемый результат должен быть много строк, содержащих только 0 или 1. В одной и той же линии, что не должно быть больше, чем один номер.

+0

Это должно быть детерминированным для любого файла. Вы видите, что на каждом прогоне печатается что-то другое? –

+0

Для того же random.txt всегда печатает тот же результат. – lpares12

+0

Не могли бы вы объяснить проблему? Что вы ожидаете увидеть и почему? –

ответ

0

В питоне, if not 0 вычисляет True, поскольку 0 является Ложно-у значения:

>>> not 0 is True 
True 

То, что вы, вероятно, хотите есть:

random_file = open("random.txt", "r") 
while True: 
    char = random_file.read(1) 
    if char == "": break 
    print char 

Это может объяснить некоторые проблемы. Не уверен, где все остальное.

Смежные вопросы