2017-09-07 14 views
0
import csv 
import datetime 
from time import strftime 
now = [strftime('%Y-%m-%d %H:%M:%S')] 
t = datetime.datetime.now() 
a=[100,101,102,103,104] 
b=[86,87,88,89,90] 
c=[95,96,97,98,99] 
d=[71,72,73,74,75] 
with open('ddd.csv', 'a',newline='') as output_file: 
    writer = csv.writer(output_file, delimiter=',') 
    writer.writerow(now) 
    writer.writerow(a) 
    writer.writerow(b) 
    writer.writerow(c) 
    writer.writerow(d) 

在這種情況下,它會輸出圖像1.我不想圖片1.將數據寫入csv的正確位置?

screenshot 1

我需要寫在畫面2.

screenshot 2

如何將數據寫入我想要的位置?我不想使用[" ","71","72","73","74","75"]來製作它。如果數據比以前更多,我想我會以這種方式面對另一個問題。

+2

難道說你需要一個實際的Excel的作家,如['xlsxwriter'(HTTP://xlsxwriter.readthedocs .IO /)? – alecxe

+2

你想要單元格A2爲空,但是你不想在列表中使用空字符串?爲什麼不? –

+0

我無法重現空行錯誤。請發佈實際的CSV文件,而不是他們的Excel表示。 [100,101,102,103,104]'必須是'[strftime('%Y-%m-%d%H:%M:%S'),100,101,102,103,104]'並且所有其他行必須以空單元格開始。 '[,86,87,88,89,90]'。 – DyZ

回答

0

如果你想多爲空白的一列,生成的行這樣:

import csv 
import time 

now = time.strftime('%Y-%m-%d %H:%M:%S') 
rows = [[now,100,101,102,103,104], 
     ['',86,87,88,89,90], 
     ['',95,96,97,98,99], 
     ['',71,72,73,74,75]] 
with open('ddd.csv','w',newline='') as output_file: 
    writer = csv.writer(output_file) 
    writer.writerows(rows) 
0
with open('ddd.csv', 'a',newline='') as output_file: 
    writer = csv.writer(output_file, delimiter=',') 
    writer.writerow([now] + a) 
    writer.writerow([None] + b) 
    writer.writerow([None] + c) 
    writer.writerow([None] + d) 

是這樣的嗎?

+0

他似乎想要的是一種CSV的攻擊,這不是CSV的用途。 – Mike