2015-04-02 58 views
-1

我是新來的Python和我正在寫一個程序,它Python:如何將列表導出到文本文件?

  1. 打開文件
  2. 來判斷用戶是否是文件
  3. 更新用戶的記錄
  4. 最後,將覆蓋在原始文件與更新的數據

我正在努力與第4點,我一直得到一個錯誤,我的數據是一個列表不是字符串。

我的文本文件中有6個逗號分隔的列:USER_NAME其次是6個號碼,即 喬斯布洛斯,1,2,3,4,5,6

這裏是我的代碼:

fname = input('First name? ') 
fname = fname.lower() 
lname = input('Last name? ') 
lname = lname.lower() 
name = (fname + ' ' + lname) 
score=8 

with open('test.txt','r+') as df: 
    data=[] 
    for row in df: 
     data.append(row.strip().split(',')) 
#for checking 
    print(data) 
    for row in data: 
     if name == row[0]: 
     #for checking 
      print(row) 
      row[3]=row[2] 
      row[2]=row[1] 
      row[1]=score 
      second=row[2] 
      third=row[3] 
      scores = [float(score),float(second),float(third)] 
      row[5]=float(int((float(score)+float(second)+float(third))/ 0.03)/100) 
      row[4]=max(scores) 
      #for checking 
      print(row) 

    df.seek(0) 
    for row in data: 
     for item in row: 
      df.write(item + ',') 
     df.write(row +'\n') 
    df.truncate() 
    df.close() 
+1

一個什麼行號你會得到錯誤? – Tenzin 2015-04-02 20:50:22

+0

你還沒有定義'f'。 – dbliss 2015-04-02 20:56:14

+0

沒關係。我看到'f'是一個錯字。你的意思是'df'。 – dbliss 2015-04-02 20:59:39

回答

0

哇,有人一直教你寫蟒蛇cobol。但是,對於你的問題,你已經循環寫了每個項目,後面跟着一個逗號,然後寫了整行。這就是錯誤發生的地方。嘗試在你的輸出中使用連接功能:

for row in data: 
    df.write(",".join(row) +'\n') 
+0

這對於整理行(而不是留下尾隨逗號)非常好,但它不是實際的錯誤。 – tdelaney 2015-04-02 21:11:53

相關問題