1

我有一个正在运行的 Python+Tkinter 程序,它是一个字典创建器。但是,当我将源代码转换为应用程序时,程序本身不会创建它应该创建的文件。我对编程很陌生,如果您能帮助我,我将不胜感激。到目前为止,我已经尝试过 py2app 和 platypus 都给出了相同的结果。

这是代码:

#!/usr/bin/env python
from Tkinter import *
import tkMessageBox
import itertools
import string

def done():
    l=list()
    if check_a.get() == True:
        l.append(string.lowercase)

    if check_A.get() == True:
        l.append(string.uppercase)

    if check_0.get() == True:
        l.append(string.digits)
    l=''.join(l)
    n=entryvar.get()
    with open("b.txt","a+") as f:
        for i in itertools.product(l,repeat=n):
            f.write(''.join(list(i)))
            f.write('\n')
        f.close()

generater=Tk()
generater.title("Generater")
generater.geometry("450x300+200+200")

mainlabel=Label(generater).pack()

entryvar=IntVar()
entry=Entry(generater, textvariable=entryvar).pack()

check_a=BooleanVar()
check_A=BooleanVar()
check_0=BooleanVar()
checkBox_a=Checkbutton(generater, variable=check_a, text="a-z").pack()
checkBox_A=Checkbutton(generater, variable=check_A, text="A-Z").pack()
checkBox_0=Checkbutton(generater, variable=check_0, text="0-9").pack()

DoneButton=Button(generater, text="Done", command=done).pack()





generater.mainloop()
4

1 回答 1

4

当您启动由 py2app 创建的应用程序时,当前工作目录将更改为应用程序包内的“Contents/Resources”文件夹。因为您的脚本创建了一个相对于当前工作目录的文件,所以它最终位于应用程序中。

(例如 myapp.app/Contents/Resources/b.txt)

于 2013-04-11T09:47:18.200 回答