from sys import argv
script, input_file = argv
def print_all (f):
print f.read()
def rewind(f):
f.seek(0)
def print_a_line(line_count,f):
print line_count, f.readline()
current_file = open(input_file)
print_all(current_file)
rewind(current_file)
print "let's print 3 lines:\n "
current_line= 1
print_a_line(current_line,current_file),
current_line = current_line+1
print_a_line(current_line,current_file)
current_line = current_line+1
print_a_line(current_line,current_file)
current_line = current_line+1
print_a_line(current_line,current_file)
current_line = current_line+1
print_a_line(current_line,current_file)
下面是cmd显示的内容,其实代码很简单,但就是不知道为什么只是显示了奇数行的内容呢?!
看了看,应该是这样的。
原始的文本应该是
I LOVE YOU !
I need you !
I feel you !
I like you !
i do it for you !
原始文本中应该就是每句话间有一个空行
通过readline读取的每一行是包含行末的换行符的
print输出的时候会在输出之后换行
所以在逐行输出的时候
第一行
1 I LOVE YOU !(这里有个换行)
(输出之后的换行)
第二行
2 (这里有一个换行)
(输出之后的换行)
之后以此类推
如果不想输出空行的话,那在readline之后再用strip处理一下然后再判断一下就行了
注意指针会移动,你再+1,所以就隔行了。把+1去掉就OK
文本是不是I love you 和I need you之间有个空行?
我看上去好像把空行作为偶数行输出了
你代码和输出都没有问题啊。
你本来的文本文件就有空行,空行也是行,所以打印出来会看到一行空一行的样子。