首页 > 为什么python打印文件的行只出现奇数行的内容,偶数行的内容没显示?

为什么python打印文件的行只出现奇数行的内容,偶数行的内容没显示?

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处理一下然后再判断一下就行了


你代码和输出都没有问题啊。
你本来的文本文件就有空行,空行也是行,所以打印出来会看到一行空一行的样子。


文本是不是I love you 和I need you之间有个空行?
我看上去好像把空行作为偶数行输出了


注意指针会移动,你再+1,所以就隔行了。把+1去掉就OK

【热门文章】
【热门文章】