无法使用Python 3

时间:2017-07-20 09:45:54

标签: python python-3.x rpt

我正在尝试使用python代码读取.rpt文件:

>>> 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

如上所述,我得到以下结果。 请告诉我如何使用python3读取.rpt文件。

1 个答案:

答案 0 :(得分:0)

这确实是一种奇怪的行为。虽然我不能轻易地重现错误而不知道.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

确保您没有重用会话中较早的变量名称,并且不会覆盖文件对象。