如何使用filedialog.asksaveasfile写入我选择的文件?

时间:2015-07-04 00:51:08

标签: python tkinter savefiledialog

我正在尝试使用filedialog.asksaveasfile写入我刚创建的文件。我将模式设置为'w'。我是否必须再次打开文件?

f = filedialog.asksaveasfile(mode='w', defaultextension=".csv")

keyList = []

for n in aDict.keys():
    keyList.append(n)

keyList = sorted(keyList, key=operator.itemgetter(0,1))
csvWriter = csv.writer(f)

for key in keyList:
    sal1 = aDict[(key[0],key[1])][0]
    sal2 = aDict[(key[0],key[1])][1]
    csvWriter.writerow(key[0], key[1], sal1, sal2)

f.close()

1 个答案:

答案 0 :(得分:4)

您只需使用write函数返回的引用(_io.TextIOWrapper类型)的asksaveasfile函数。

例如

from tkinter import filedialog, Tk

root = Tk().withdraw()

file = filedialog.asksaveasfile(mode='w', defaultextension=".csv")

if file:
    file.write("Hello World")
    file.close()

请注意,asksaveasfile函数返回的对象与内置{{1}返回的对象的类型相同功能。另请注意,如果在弹出对话框时按下open,则同一函数返回None