2016-11-28 371 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'