[問題] 如何將writer.writerow()內參數設為變數?

看板Python作者 (平凡無奇)時間5年前 (2019/06/02 12:37), 編輯推噓5(507)
留言12則, 3人參與, 5年前最新討論串1/1
各位大大好,請先看一段小小程式碼,如下: 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://www.ptt.cc/bbs/Python/M.1559450277.A.5F5.html

06/02 15:17, 5年前 , 1F
把每次讀到的row[x]新增到另外的串列裏面?寫入時就使用另外
06/02 15:17, 1F

06/02 15:17, 5年前 , 2F
的這個串列
06/02 15:17, 2F

06/02 15:22, 5年前 , 3F
不過 j 是從哪邊冒出來的?
06/02 15:22, 3F

06/02 15:24, 5年前 , 4F
不過你是不是不懂 for row in csv.reader()的意義阿?
06/02 15:24, 4F

06/02 15:25, 5年前 , 5F
row 的內容已經會隨著迴圈的進行不斷變化了
06/02 15:25, 5F

06/05 18:22, 5年前 , 6F
知道你想問啥 但是看起來還有別的問題要處裡
06/05 18:22, 6F

06/16 04:37, 5年前 , 7F
新變數y=1 第一句for底下再包一層if y != x write.writerow
06/16 04:37, 7F

06/16 04:37, 5年前 , 8F
([row[y]) + ‘,’
06/16 04:37, 8F

06/16 04:37, 5年前 , 9F
+ AddNew Colum[j]寫在if之外。沒學過python不知道這樣的
06/16 04:37, 9F

06/16 04:37, 5年前 , 10F
邏輯是否可行 如果有錯請鞭小力一點...
06/16 04:37, 10F

06/16 04:41, 5年前 , 11F
更正 if裡面應該是:字串= 字串+ row[y] + ‘,’ y++
06/16 04:41, 11F

06/16 04:42, 5年前 , 12F
write.writerow(字串+AddNew Column[j])
06/16 04:42, 12F
文章代碼(AID): #1SyrAbNr (Python)