Re: [问题] 读取csv档内的数字作为loop内的迭代值

楼主: Neisseria (Neisseria)   2014-06-15 15:04:46
※ 引述《okmnji ()》之铭言:
: 我写了个script去控制PostgreSQL
: 利用其内建的函式得到我想要的结果
: http://pastebin.com/836uSmhh
: 现在我想要读取一个csv档
: 例如:

: 利用里面的数字取代原本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