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

Posted

技术标签:

【中文标题】如何写入使用 filedialog.asksaveasfile 选择的文件?【英文标题】:How do I write to the file I selected using filedialog.asksaveasfile? 【发布时间】:2015-07-04 00:51:07 【问题描述】:

我正在尝试写入我刚刚使用 filedialog.asksaveas 文件创建的文件。我将模式设置为“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】:

您可以简单地使用由asksaveasfile 函数返回的引用(类型为_io.TextIOWrapper)的write 函数。

例如

from tkinter import filedialog, Tk

root = Tk().withdraw()

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

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

注意asksaveasfile 函数返回的对象与内置open 函数返回的对象具有相同的typeclass。另请注意,如果在弹出对话框时按下Cancel,相同的函数将返回None

【讨论】:

以上是关于如何写入使用 filedialog.asksaveasfile 选择的文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用多个字典写入 csv?

如何使用 .Net 直接写入磁盘?

如何使用 tkinter 按钮在 python 中写入文件?

使用 Reactjs 时如何将数据写入 JSON 文件

如何使用 Python 实现最大写入速度?

如何使用 NIO 将 InputStream 写入 File?