[英]Copy specific Column from a .csv file to another .csv file and save it as a new .csv file issue
假設File1是我要從中復制該列的文件,File 2是我要將該列粘貼到的文件,並且一旦粘貼,請將該文件另存為擴展名為.csv的新文件。 看起來似乎很簡單,但是我對代碼的第一次嘗試卻給了我這個錯誤“ AttributeError:'file'對象沒有屬性'writerow'”。很明顯,我似乎不知道我在做什么錯。 所以我想知道你們是否可以幫助我。 這是我到目前為止編寫的代碼:
import csv
File1 = 'C:/Users/Alan Cedeno/Desktop/Test_Folder/dyn_0.csv'
File2 = 'C:/Users/Alan Cedeno/Desktop/Test_Folder/HiSAM1_data_160215_164858.csv'
with open(File1, "r") as r, open(File2, "a") as w:
reader = csv.reader(r, lineterminator = "\n")
writer = csv.writer(w, lineterminator = "\n")
for row in reader:
w.writerow(row[0])
如果問題需要格式化,請告訴我。 另外,如果您認為代碼無法實現我想要的功能,那么提示我可以從哪里開始肯定會有所幫助。 請記住,我是一個學習緩慢的人,因此,如果您可以向我展示如何使其逐步運行,那將是巨大的幫助! 我只需要一些入門者,因此我可以繼續並自己編寫。 謝謝:o)
您最直接的問題是w
是您想要writer
的文件對象。 但是您還有其他一些問題。 首先,您描述了3個文件,而不是兩個。 接下來,您需要實際插入列。 最后,您必須決定如果兩個文件的長度不同,該怎么辦。 在此示例中,我假設您要從第一個csv文件中提取第一列,並將其作為合並結果中的第一列插入。 我對文件名進行了修改,以(希望)使其更加清晰。
如注釋中所述,以下代碼具有幾種用於合並csv的技術。 您需要根據實際情況進行更改。
import os
import csv
File1 = 'C:/Users/Alan Cedeno/Desktop/Test_Folder/dyn_0.csv'
File2 = 'C:/Users/Alan Cedeno/Desktop/Test_Folder/HiSAM1_data_160215_164858.csv'
root, ext = os.path.splitext(File2)
output = root + '-new.csv'
with open(File1) as r1, open(File2) as r2, open(output, 'w') as w:
writer = csv.writer(w)
merge_from = csv.reader(r1)
merge_to = csv.reader(r2)
# skip 3 lines of headers
for _ in range(3):
next(merge_from)
for merge_from_row, merge_to_row in zip(merge_from, merge_to):
# insert from col 0 as to col 0
merge_to_row.insert(0, merge_from_row[0])
# replace from col 1 with to col 3
merge_to_row[1] = merge_from_row[3]
# delete merge_to rows 5,6,7 completely
del merge_to_row[5:8]
writer.writerow(merge_to_row)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.