[英]How to write a value in each row of a csv file?
我使用循環為 csv 文件的每一行計算一個值,並希望將此值寫入每一行中的新列。
我打開文件:
with open('hello.csv', 'r', encoding="latin-1") as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
list1 = list(readCSV)
然后遍歷行並計算一個新值:
for j in list1:
dt=j[1]
dt2=dt+1
如何在現有 csv 文件“hello.csv”中的每一行“j”中寫入 dt2 作為新列?
從評論復制:
這只是一個簡單的例子。 我已將數據時間對象轉換為正確的時區:
dtstr=j[1] #string
hours, minutes = [int(t) for t in tstr.split(':')]
dt = datetime.strptime(dtstr, '%Y-%m-%d %H:%M:%S') +
timedelta(hours=hours+4, minutes=minutes)
使用 python csv
模塊並創建一個新列並在outfile
寫入行,並添加了new_column_value
新列表。
with open('hello.csv', 'r', encoding="latin-1") as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
with open('helloout.csv', 'w', encoding="latin-1") as outfile:
outCSV = csv.writer(outfile,delimiter=',')
for line in readCSV:
new_column_value = func(line[j]) # Your modification function j column number
new_line = line + [new_column_value]
outCSV.writerow(newline)
with open('hello.csv', 'r', encoding="latin-1") as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
list1 = list(readCSV)
for j in list1:
dtstr=j[1] #string
hours, minutes = [int(t) for t in tstr.split(':')]
dt = datetime.strptime(dtstr, '%Y-%m-%d %H:%M:%S') +timedelta(hours=hours+4, minutes=minutes)
with open('hello out.csv', 'w', encoding="latin-1") as outfile:
outCSV = csv.writer(outfile,delimiter=',')
newline = j + [dt]
outCSV.writerow(newline)
我只變成了一個帶有一行的 csv 文件 helloout.csv,這是帶有新列的文件 hello.csv 的最后一行。 我認為它會覆蓋行,但我不知道為什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.