2015-04-02 38 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

相关问题