Python readlines() 3.X 至 2.X

Python readlines() 3.X to 2.X

我有一个最初为 python 3.5+ 编写的脚本。我需要将其转换为 2.6.2。 在脚本中,我使用 readlines(),我认为这两个版本之间的行为不同。 具体来说,我正在使用 readlines() 从由换行符分隔的 txt 文件中检索数据。

这是一个片段:

t=open(supportID+"stmp.txt","r")
timeIn=(t.readlines())
a=(str(timeIn))
supportID=(t.readlines())
b=(str(supportID))
branch=(t.readlines())
c=(str(branch))
clientID=(t.readlines())
d=(str(clientID))
problem=(t.readlines())
e=(str(problem))
solution=(t.readlines())
f=(str(solution))
timeOut=(t.readlines())
g=(str(timeOut))

在我的 3.x 脚本中,我在每个 readlines() 中都有一个“1”,它根据需要执行,但是对于 2.x 这不起作用。如上所示,我尝试输入值 1-7 和空白。

通过一些研究,我发现一些 2.x 用户使用 with open(filename) 这是首选方法还是有办法改变我的原始方法以使其工作?

编辑: 所以我打算使用这种格式

with open(supportID+"stmp.txt") as t:
    for line in t:
        print(line)

我插上它,它工作了,在我的 shell 中将每一行打印为一行。现在我想用它来将每一行分配给一个变量。

编辑 2: 这目前适用于我的环境,但不是此功能的最佳实践。读取每一行并将每一行分配给一个变量。

t=open(supportID+"stmp.txt","r")
lines = t.readlines()
t.close()
a=lines[0]
b=lines[1]
c=lines[2]
...

试试这个代码:(我假设它适用于 python 版本 >= 2.6)

with open('lines.txt','r') as f:
    lines = f.readlines()
    for line in lines:
       print(line.strip())

读取文件中的每一行并分配给一个变量我将此方法用于python 2.6.2

t=open(supportID+"stmp.txt","r")
lines = t.readlines()
t.close()
a=lines[0]
b=lines[1]
c=lines[2]
...