0

我尝试使用“导入 csv”将我的输出保存为 csv,但只会出错。有什么理由吗?

由于我无法使其运行,它还会通知文件是否已存在?

非常感谢

from tkinter import *
from tkinter.filedialog import asksaveasfilename
from tkinter import ttk

import csv

def data():
  ...
  output= <class 'list'>  #just an example
  ...    

def savefile():
  name= asksaveasfilename()
  create = csv.writer(open(name, "wb"))
  create.writerow(output)
  for x in output:
      create.writerow(x)

root = Tk()
Mframe = ttk.Frame(root)
Mframe.grid(column=0, row=0, sticky=(N, W, E, S))

bSave=ttk.Button(Mframe, text='Save File', command=savefile)
bSave.grid(column=1, row=0)

root.mainloop()
4

1 回答 1

0

您正在打开文件,但没有关闭它。一个好的做法是使用 with 语句确保关闭它。顺便说一句,我不知道output列表如何,但如果它不是列表列表,那么调用writerow一次对我来说更有意义。

另外,要确保这个列表也是一个全局变量,否则在savefile. 但是,全局变量并不是一个很好的解决方案,因此请考虑将其作为参数传递给savefile或使用一个类来保存所有这些数据:

def savefile():
    name = asksaveasfilename()
    with open(name, 'w', newline='') as csvfile:
        create = csv.writer(csvfile)
        create.writerow(output)
于 2013-07-24T16:06:18.780 回答