2015-03-31 95 views
0

我已经加载的文件到列表Python的不打印正确的结果,虽然结果是正确的

line_storage = []; 

    try: 
     with open(file_name_and_path, 'r') as f: 
      for line in f: 
       line_storage.append(line) # store in list 

但是,试图将其转换为字符串时(“字符串”吧):

total_number_of_lines = len(line_storage) 

lineBuffer = ""; 
for line_index in xrange(0, total_number_of_lines): 
     lineBuffer += line_storage[line_index].rstrip('\n') # append line after removing newline 

该印刷品未显示完整内容,但仅显示最后一行。虽然,len(lineBuffer)是正确的。

文件内容是: .... [04.01] Test 1: You should be able to read this. [04.02] Test 2: .... =========================================================== EOF

我如何解决此问题?

回答

2

您的文本行可能以\r\n结尾,而不仅仅是\n。通过删除\n,您将在每行的末尾保留\r。打印到终端时,每行将覆盖上一行,因为\r仅将光标移回当前行的开头。

该解决方案可能使用.rstrip('\r\n')

+0

或者只是使用不带任何参数的rstrip – 2015-03-31 22:26:25

+1

@PadraicCunningham:这将删除任何*空格,并且OP可能希望在行尾保留空格/制表符。 – 2015-03-31 22:27:52