Не удается прочитать файл 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
Убедитесь, что вы не использовали имена переменных ранее в сеансе и не перезаписывали объект файла.