Не удается прочитать файл rpt с помощью Python 3

Я пытаюсь прочитать файл.rpt, используя код Python:

>>> with open(r'C:\Users\lenovo-pc\Desktop\training2.rpt','r',encoding = 'utf-8', errors = 'replace') as d:
...     count = 0
...     for i in d.readlines():
...         count = count + 1
...         print(i+"\n")
...
...


u

i

d

|

e

x

p

i

d

|

n

a

m

e

|

d

o

m

a

i

n

И я получаю следующий результат, как указано выше. Пожалуйста, дайте мне знать, как я могу прочитать файл.rpt, используя python3.

1 ответ

Это действительно странное поведение. Хотя я не могу легко воспроизвести ошибку, не зная формат файла.rpt, здесь есть некоторые подсказки, что может пойти не так. Я предполагаю, что это выглядит примерно так:

uid|expid|name|domain
...

Который можно прочитать и распечатать с помощью следующего кода:

with open(r'C:\Users\lenovo-pc\Desktop\training2.rpt','r',encoding = 'utf-8', errors = 'replace') as rfile:
    count = 0
    for line in rfile:
        count += 1
        print(line.strip())  # this removes white spaces, line breaks etc.

Однако проблема заключается в том, что вы перебираете строку первой строки в вашем файле вместо строк в файле. Это произвело бы вид, который вы видите, как print() Функция добавляет разрыв строки (в дополнение к тому, который вы добавляете вручную). Это оставляет вас с символом на строку (после двух разрывов строки).

>>> for i in "foo":
...     print(i+"\n")
f

o

o

Убедитесь, что вы не использовали имена переменных ранее в сеансе и не перезаписывали объект файла.

Другие вопросы по тегам