2016-03-01 98 views
0

正常工作,我試圖做文件IO,我寫了一個程序:文件IO:LEN()函數不是在蟒蛇

  1. 閱讀下列行
  2. 打印內容行號的每一行在
  3. 在一行中打印總字符
  4. 打印行。

我試圖讀取的文本存儲在一個名爲input.txt的文件中。下面是確切的文字...

I am a file. 
This is a line. 
This is the last line. 

這裏是我的函數來讀取該文件並打印出我想要的結果。

in1 = open("input.txt", 'r') 
x=0 
for line in in1: 
    print ('Line %d ' % (x)), 
    print ("(%d chars): " % (len(line))), 
    print (line), 

    x += 1 

我端子輸出應該

Line 0 (12 chars): I am a file. 
Line 1 (15 chars): This is a line. 
Line 2 (22 chars): This is the last line. 

但我的實際終端輸出

Line 0 (13 chars): I am a file. 
Line 1 (16 chars): This is a line. 
Line 2 (22 chars): This is the last line. 

當我的功能的計時線的長度,我相信這是計數輸入密鑰我按下以便移動到下一行作爲額外字符。我該如何解決?

+0

什麼是'x + = 1x = 0'應該是?因爲這是一個語法錯誤。 – MarkyPython

+0

你需要在'line.rstrip()'末尾去掉換行符。而且,當使用文件時,通常最好在in1:'block中使用'with open(「input.txt」,「r」)。 – Goodies

+0

x + = 1x = 0是我原來的帖子中的一個錯誤。我已將它更新爲x + = 1 – Jacob

回答

5

這是因爲每一行在結尾處都有一個換行符,您看不到。改爲使用len(line.rstrip())