2016-11-28 370 views
-1

我通常使用txt文件,但我需要使用csv我基于此我如何做txt文件,我不知道我做错了什么,任何人都可以帮助我。Python将数据保存到csv文件

Home = "Road" 
House = 5 

def Save(Home,House): 
    Saved=open('Saved.csv', 'a') 
    Saved.write(Home+House+"/n") 
    Saved.close() 

Save(Home,House) 

我得到这个错误

File "F:/Pygame/Test12.py", line 74, in Save 
    Saved.write(Home+House+"/n") 
TypeError: cannot concatenate 'str' and 'int' objects 
+0

...你想做什么? 'Home + House +'/ n“'应该给予什么? (另外,你正在使用正斜杠,我猜这应该是一个反斜杠。)CSV在哪里进来?我没有看到任何证据。如果您正在尝试读取或写入CSV文件,则应使用['csv'模块](https://docs.python.org/3/library/csv.html#module-csv)。 – Chris

回答

2

1),这不是一个.csv文件。 2)在python中,你不能在没有事先转换的情况下将整数与字符串连接起来。

3)这样做:Home+str(House)是合法的,但是当你想读回你的文件,你必须分开两个字段(您提供的没有办法把它们分开的)

下面是这将创建一个代码真正 csv文件:

import csv 
def Save(Home,House): 
    with open('Saved.csv', 'a') as Saved: 
     cw = csv.writer(Saved) 
     cw.writerow([Home,House]) 

当您构图行,你可以把你想要的任何数据,该csv模块,如果需要转换为字符串。

顺便读一遍,使用csv.reader并遍历行。由于您知道数据类型,因此可以将第二列直接转换为int

with open('Saved.csv', 'r') as Saved: 
    cr = csv.reader(Saved) 
    for row in cr: 
     Home = row[0] 
     House = int(row[1]) 
     # now you have to do something with those variables :) 
+0

因此,如果我想从csv文件中读取家庭和房屋,我将如何正确编辑 – Coder101

+0

以显示阅读部分。玩的开心! –

2

你不能用字符串拼接的整数,请使用以下为int转换为字符串:

Saved.write(Home + str(House) + "\n") 
0

Python的变量有类型。所以你正试图将5添加到未定义应用程序的'House'中。为了使这项工作,你必须将数字5转换为字符串'5'。作为ettanany建议使用

Saved.write(Home+str(House)+"\n") 

另外,还要注意它的 '\ n' 而不是 '/ N'