我很新的Python編程,並決定在一個小項目學習語言。Python CSV行循環
基本上我想:
- 閱讀CSV文件的第一個單元格。
- 詢問該單元格值是否「喜歡」。
- 如果喜歡,請寫入1.,「1」單元格旁邊的列。
- 否則,寫「0」。
- 重複下一行,直到列表結束。
我現在代碼:
import csv
reader = csv.reader(open("mylist.csv"), delimiter=',')
data = []
for row in reader:
data.append(row)
ask = (data[0][0])
ans = input("Do you like {}? ".format(ask))
if ans == ("y"):
f = open('mylist.csv', 'r')
reader = csv.reader(f)
data = list(reader)
f.close()
data[0][1] = '1'
my_new_list = open('mylist.csv', 'w', newline='')
csv_writer = csv.writer(my_new_list)
csv_writer.writerows(data)
my_new_list.close()
else:
f = open('mylist.csv', 'r')
reader = csv.reader(f)
data = list(reader)
f.close()
data[0][1] = '0'
my_new_list = open('mylist.csv', 'w', newline='')
csv_writer = csv.writer(my_new_list)
csv_writer.writerows(data)
my_new_list.close()
所以基本上,我堅持試圖讓下一行的內容。
僅供參考,我期待在此過程中實現機器學習。
首先學習如何以基本的方式做到這一點。
任何幫助,歡迎。
謝謝!
其實你似乎並沒有意識到你所承擔的任務的複雜性。同時閱讀和寫入CSV文件非常非常困難。這就是爲什麼人們在RDBMS成爲常見的地方之前在糟糕的過去使用固定長度的記錄 – e4c5
不要試圖將它重新寫回到同一個文件中。嘗試在內存中保存更新的版本(列表和字典等),並在退出時將其寫入文件。您可以創建一個新的結果文件或覆蓋該文件。 –
直到我開始嘿嘿,我才知道任務的複雜性。但是現在我想找到完成@ e4c5的最佳方式。 – Humbis