我正在尝试使用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文件。
答案 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
确保您没有重用会话中较早的变量名称,并且不会覆盖文件对象。