我需要在三个文件中输出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()
答案 0 :(得分:1)
如果你想要的只是强迫csv
模块打印逗号,你可以给它一个空的第二列:
writer1.writerow ([k, None])
现在,如果这真的是你想要的全部,我认为你不应该开始使用csv模块。直接写入文件会更容易:
outputFile1.write ("%d,\n" % k)
答案 1 :(得分: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)