Re: [問題] 讀取csv檔內的數字作為loop內的迭代值

作者: Neisseria (Neisseria)   2014-06-15 15:04:46
※ 引述《okmnji ()》之銘言:
: 我寫了個script去控制PostgreSQL
: 利用其內建的函式得到我想要的結果
: http://pastebin.com/836uSmhh
: 現在我想要讀取一個csv檔
: 例如:http://imgur.com/RkDvq24
: 利用裡面的數字取代原本script裡面的迭代值
: 目前是將原script,從line 35開始的地方改成這樣
: http://pastebin.com/ZY74KmNB
: 目的是讓i從6開始,l也從6開始
: 但當(i,l) = (6,6、31、28、29、23、20、32、17)run完其sql code之後
: i再接著變為31,再繼續(i,l) = (31,6、31、28、29、23、20、32、17)
: 以此類推,直到csv檔內的數字都被迭代值用過為止
: script可以run,但輸出的csv檔卻沒有東西
: 想請教大家,關於這樣的概念我是哪個地方寫錯了,謝謝。
其實不太需要再讀取一個 csv 檔
既然都 hard code 數字了,直接寫成一個 list 就好
如果還是想另行讀入 csv 檔,可以分兩輪處理
_list = []
# from line number 35 in your file
with open("input.csv", "rb") as _file:
reader = csv.reader(_file)
for row in reader:
_list.append(row[0])
with open("output.csv", 'wb') as _file:
writer = csv.writer(_file)
for i in _list:
for j in _list:
cur.execute(query, (i, l, True, True))
element = cur.fetchall()
product = sum([a[-1] for a in element[:-1]])
writer = csv.writer(f2, delimiter = ',')
writer.writerow([product])
不過我不是很了解這樣子算的意義為何,可能會曲解你的原意
希望對你有幫助
作者: okmnji   2014-06-15 16:53:00
謝謝你的回應,會需要另外寫讀取csv檔的code是因為會先利用PostgreSQL查詢需要用到的數字,而每次查詢會出現的數字、有多少數字都不一定。
作者: Neisseria (Neisseria)   2014-06-15 22:01:00
可以分兩次,一次讀 csv 到 list 內,一次寫入 csv 檔
作者: okmnji   2014-06-16 02:06:00
謝謝!

Links booklink

Contact Us: admin [ a t ] ucptt.com