Readline打印只是字符

时间:2018-05-21 22:15:55

标签: python

我在Python IDLE中运行此代码,它只返回指定的字母数量而不是指定的行数。

 if os.path.exists(saveDir + name + '.txt') == True:
    print('welcome back ' + name + '.')

    file = open(saveDir + name + '.txt')
    race = file.readline(1)
else:
    race = intro()

当我打印竞赛变量时,它出现为G(输入名称为Grant)。 文本文件如下所示

Grant
Human

我做错了什么?

3 个答案:

答案 0 :(得分:1)

race = file.readline(1)返回该行的1个字节(字符)(请参阅here)。您想要返回整行,请致电race = file.readline()

答案 1 :(得分:0)

您是在尝试阅读单行还是所有行? file.readline()将以字符串形式返回文件的第一行。如果再次调用,它将返回第二行,依此类推。您还可以将文件的所有行加载为file.readlines()的列表,然后使用[0][1]获取第一个或第二个元素,这样file.readlines()[1]将会产生"人类"

答案 2 :(得分:0)

 if os.path.exists(saveDir + name + '.txt') == True:
    print('welcome back ' + name + '.')

    file = open(saveDir + name + '.txt')
    race = file.readline() # this reads one line at a time
    raceType = file.readline() # this will give you the second line (human)
else:
    race = intro()