繁体   English   中英

Python CSV输出格式

[英]Python CSV output formatting

我需要将CSV文件文本输出为三个文件,以显示赔率,偶数和所有数字。 但是,现在,当您运行该程序时,只能将它们以阵列格式打印在一行上。 我需要所有数字都用逗号分隔开来。

例如:

1,
2,
3,
4,
5,

我可以在所有写行上使用循环,如下面的代码所示,但是此选项将值分隔为

1,

2,

3,

4,

5,

我想避免这种情况,只使用.join或换行符,甚至使用其他东西即可获得正确的输出,但是我既无法工作,也没有大量的格式化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()

如果只需要强制csv模块打印逗号,则可以在第二列中添加一个空值:

    writer1.writerow ([k, None])

现在,如果这确实是您想要的全部,那么我认为您不应该使用csv模块作为开始。 直接写入文件会更容易:

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

我需要所有数字都用逗号分隔开来。

首先,您不需要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) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM