现有一文件shili.txt,文件内容如下:
第1行
第2行
第3行
第4行
第5行
此处用readline()!=''判断是否读完文件,不为空则打印;为空则停止循环。
with open('shili.txt', 'r') as f:
while True:
if f.readline()!='':
print(f.readline(),end='')
else:break
得到结果如下
第2行
第4行
这里跳过了奇数行,只打印出了偶数行。但很明显奇数行并非为空,那么为什么会被跳过呢?
每执行一次f.readline()都会读取新的一行,
你在while循环中执行了两次f.readline()
这样每次循环都读取了两行,一行用于if判断(奇数行),一行用于输出(偶数行)。
应该每次循环只让它执行一次f.readline()
with open('shili.txt', 'r') as f:
while True:
s = f.readline()
if s!='':
print(s,end='')
else:break
ReadLine每次读一行,if的时候是奇数行,print的时候是偶数行
啊这,哈哈哈哈,你运行了两次,兄弟
with open('shili.txt', 'r') as f:
while txt:=f.readline():
print(txt,end='')
海象运算符学过了没?
你应该尝试用它,非常好用,而且让你代码更简洁优雅!
对比一下我写的代码和你写的代码!