2017-08-01 94 views
0

我需要輸出三個文件中的CSV文件文本,以獲得賠率,平均值和所有數字。但是,現在只有當您運行該程序時,它們纔會以數組格式打印在單行上。我需要將所有數字放在由逗號分隔的各自行中。Python CSV輸出格式

例如:

1,
2,
3,
4,
5,

我可以使用在所有writerows環路如下不過此選項中的代碼看到包裝箱值分離像

1,

2,

3,

4,

5,

我想避免這種情況,只需使用。加入或換行,甚至是別的東西,以獲得正確的輸出,但我無法上班,也沒有很多格式化csv文件的經驗。

import csv 
from tkinter import * 

myGui = Tk() 
myGui.title("Label Creator v: 0.01") 
myGui.geometry("290x70") 

allArray = [] 
oddArray = [] 
evenArray = [] 

Label(myGui, text="Starting value: ").grid(row=0) 
Label(myGui, text="Ending value: ").grid(row=1) 

a = IntVar() 
b = IntVar() 

e1 = Entry(myGui, textvariable=a) 
e1.grid(row=0, column=1) 
e2 = Entry(myGui, textvariable=b) 
e2.grid(row=1, column=1) 

def main(): 
    oute1 = a.get() 
    oute2 = b.get() 
    for i in range(oute1, oute2 + 1): 
     x = i 
     allArray.append(x) 
     # Odds 
     if(x % 2 == 1): 
      oddArray.append(x) 
     # Evens 
     elif(x % 2 == 0): 
      evenArray.append(x) 

    with open("all_labels", "w") as outputFile1: 
     writer1 = csv.writer(outputFile1) 
     for k in allArray: 
      writer1.writerow([k]) 

    with open("odd_labels", "w") as outputFile1: 
     writer2 = csv.writer(outputFile1) 
     for k in oddArray: 
      writer2.writerow([k]) 

    with open("even_labels", "w") as outputFile2: 
     writer3 = csv.writer(outputFile2) 
     for k in evenArray: 
      writer3.writerow([k]) 


Button(myGui, text="Start", command=main).grid(row=3) 

myGui.mainloop() 
+2

我很樂意提供幫助,但目前這不是問題的形式。你的問題到底是什麼? –

+0

我應該如何去格式化csv文件,以及是否有任何我沒有想到的方法來獲得正確的格式? –

+0

'對於allArray中的k:'?爲什麼不直接寫allArray。然後它會是一行 –

回答

1

如果你想要的是迫使csv模塊打印逗號,你可以給它一個空第二欄:

writer1.writerow ([k, None]) 

現在,如果這真的是你想要的,我不認爲你應該使用csv模塊開始。直接寫入文件會更容易:

outputFile1.write ("%d,\n" % k) 
+0

是的,但該文件需要與調酒師兼容,它不會工作,除非格式正確 –

+0

@Joe「酒保」?? –

+0

是啊,它用於標籤 –

0

我需要所有的數字是由逗號分隔自己的個性線條。

首先,你並不需要爲這個

二csv模塊,我將讓你不重複自己定義一個函數。

def write_numbers(filename, nums): 
    with open(filename, "w") as f: 
     for x in nums: 
      f.write("{},\n".format(x)) 

然後調用,對於每個需要輸出的

write_numbers("all_labels.txt", allArray) 
write_numbers("odd_labels.txt", oddArray) 
write_numbers("even_labels.txt", evenArray)