作者qazwsx0159 (平凡无奇)
看板Python
标题[问题] 如何将writer.writerow()内参数设为变数?
时间Sun Jun 2 12:37:55 2019
各位大大好,请先看一段小小程式码,如下:
for x in range(1,1001,1):
with open('fix.csv','rb') as csvinput:
with open('fix_append.csv','wb') as csvoutput:
writer = csv.writer(csvoutput)
for row in csv.reader(csvinput):
if j<len(AddNewColumn):
writer.writerow([row[0],row[1],...,row[x],AddNewColumn[j]])
以上就是想把fix.csv的东西写进fix_append.csv,然後再加上一列AddNewColumn的值
以下为小弟问题,请问各位大大
如何将writer.writerow([row[0],row[1],...,row[x],AddNewColumn[j]])的row[x]设定
为变数呢?
也就是说,在最上层的for回圈里,
当x=1,writer.writerow([row[0],AddNewColumn[j]])
当x=2,writer.writerow([row[0],row[1],AddNewColumn[j]])
当x=3,writer.writerow([row[0],row[1],row[3],AddNewColumn[j]])
小弟有尝试用字串的方式来解,如下
for x in range(1,1001,1):
xxx="%d"%(x-1)
RowString=RowString+'row['+xxx+'],'
with open('fix.csv','rb') as csvinput:
with open('fix_append.csv','wb') as csvoutput:
writer = csv.writer(csvoutput)
for row in csv.reader(csvinput):
if j<len(AddNewColumn):
Astring= RowString + "AddNewColumn["+ "%d"%j +"]"
Astring=Astring.split(',')
writer.writerow(Astring)
用上述方式印在fix_append.csv表上的就不是fix.csv里每一行row的值了,而是单纯的字
串row[0]、...、row[x]、AddNewColumn[j]
麻烦各位程式大神解惑了,感谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.167.171.142 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1559450277.A.5F5.html
1F:推 art1: 把每次读到的row[x]新增到另外的串列里面?写入时就使用另外 06/02 15:17
2F:→ art1: 的这个串列 06/02 15:17
3F:推 art1: 不过 j 是从哪边冒出来的? 06/02 15:22
4F:推 art1: 不过你是不是不懂 for row in csv.reader()的意义阿? 06/02 15:24
5F:→ art1: row 的内容已经会随着回圈的进行不断变化了 06/02 15:25
6F:→ KSJ: 知道你想问啥 但是看起来还有别的问题要处里 06/05 18:22
7F:推 Ronee: 新变数y=1 第一句for底下再包一层if y != x write.writerow 06/16 04:37
8F:→ Ronee: ([row[y]) + ‘,’ 06/16 04:37
9F:→ Ronee: + AddNew Colum[j]写在if之外。没学过python不知道这样的 06/16 04:37
10F:→ Ronee: 逻辑是否可行 如果有错请鞭小力一点... 06/16 04:37
11F:推 Ronee: 更正 if里面应该是:字串= 字串+ row[y] + ‘,’ y++ 06/16 04:41
12F:→ Ronee: write.writerow(字串+AddNew Column[j]) 06/16 04:42