f.readline()的奇妙坑点

首先,比如这里有这么个文件list.txt, 内容如下:

 代码为这个,每行都读取下,最后打印:

def main():
    with open('./list.txt','r') as f:
        s1=f.readline()
        s2=f.readline()
        s3=f.readline()

        print('s1={}, s2={}, s3={}\n'.format(s1,s2,s3))
if __name__=='__main__':
    main()

结果:

s1=xx/yy/1.png, xx/yy/1-1.png   
, s2=xx/yy/2.png, xx/yy/2-1.png 
, s3=xx/yy/3.png, xx/yy/3-1.png 

然后现在加一行打印的代码:

def main():
    with open('./list.txt','r') as f:
        s1=f.readline()
        s2=f.readline()
        print(f.readline())#中途打印一个看看
        s3=f.readline()

        print('s1={}, s2={}, s3={}\n'.format(s1,s2,s3))
if __name__=='__main__':
    main()

结果:

xx/yy/3.png, xx/yy/3-1.png
s1=xx/yy/1.png, xx/yy/1-1.png   
, s2=xx/yy/2.png, xx/yy/2-1.png 
, s3=

...原来这玩意在这里语句也依然会生效,也就是我的数据每次循环都被print吃掉了一个,难怪每次都是正好读到一半数据时出错...

猜你喜欢

转载自blog.csdn.net/neowell/article/details/120126282
今日推荐