根据 Tkinter 中保存的文件编写另一个文本文件

Posted

技术标签:

【中文标题】根据 Tkinter 中保存的文件编写另一个文本文件【英文标题】:Writing Another Text File based on Saved File from Tkinter 【发布时间】:2015-06-04 02:57:39 【问题描述】:

我提示用户保存文件,我想自动保存一个文件。例如,假设用户在我的程序下保存了一个名为“foo.txt”的文本文件,我想自动制作一个名为“lengthfoo.txt”的文本文件。 “foo”之前的单词“length”,“foo”之后的“.txt”。另一个例子:当用户保存“HelloWorld.txt”时,我希望程序自动保存另一个名为“lengthHelloWorld.txt”的文件

from ast import literal_eval
from Tkinter import *
from tkFileDialog import *

def loadFile():
    try:
        save_file = askopenfile(mode='r', defaultextension=".zw")
        lengths_file = open("length%s.zw" % "origsavefilename", "r")
        with save_file as f:
            for line in f:
                rectList.extend(literal_eval(line.strip()))
        save_file.close()
        lengths_file.close()
        print "File Loaded"

def saveFile():
    try:
        save_file = asksaveasfile(mode='w', defaultextension=".zw")
        if save_file is not None:
            # Write the file to disk
            lengths_file = open("length%s.zw" % "origsavefilename", "w")
            save_file.close()
            print "File Saved Successfully."

【问题讨论】:

【参考方案1】:

不要使用asksaveasfile,而是使用asksaveasfilename,它会返回选择的文件名而不是打开的文件。

然后您可以使用length 之类的方式创建文件名

import os

save_filename = asksaveasfilename()
save_filename_split = os.path.split(save_filename)
save_filename_length = os.path.join(save_filename_split[0],
                                     'length'+save_filename_split[-1])

然后你有两个文件名,你可以打开和写入内容。

【讨论】:

以上是关于根据 Tkinter 中保存的文件编写另一个文本文件的主要内容,如果未能解决你的问题,请参考以下文章

Python|用tkinter实现自定义记事本

更新tkinter标签以在我的python GUI上一次显示一行文本文件

如何用浏览器打开用记事本编写的代码

纯文本文档如何转换成excel工作表

txt文本文档打开全都是乱码

快速保存多行文本