这个程序,我第一次写是这样的:
|
1
2
3
4
5
6
|
name=input("请输入文件路径:")
number=int(input("请问要打印几行:"))
f=open(name,"r")
AAA=f.readlines()
for i in range(number):
print(AAA)
|
非常直观的思路,有什么写什么,从上倒下的写作方式。
后来发现这个程序运行的时候,假如在number的地方输入5,输出结果是把整个文章反复了5遍,而不是打印出前五行。
于是知道这里是.readlines()和.readline()的区别,前者是通篇以一个列表的形式打印出来,比如[line1,line2,...lineN],而后者是只打印第一句话。
更改成.readline()之后,再次启动,选择好文件路径和行数,发现输出结果是打印了5遍文章的第一句话。这回又是什么原因呢?
查了一圈,发现是AAA=f.readline(),这句话不应该放在for...in...外面,放外面的下场就是“先读取整篇文章第一句话”,然后反复重复i次。而调换到for...in...里面的话,就是打印出来整篇文章的前i句话。
正确的程序如下:
|
1
2
3
4
5
6
|
name=input("请输入文件路径:")
number=int(input("请问要打印几行:"))
f=open(name,"r")
for i in range(number):
AAA=f.readline()
print(AAA,end=" ")
|
本文转自 苏幕遮618 51CTO博客,原文链接:http://blog.51cto.com/chenx1242/1728958