源代码后应用程序不起作用

时间:2013-04-10 20:53:57

标签: python tkinter py2app platypus

我有一个有效的Python + Tkinter程序,它是一个字典创建者。但是,当我将soucecode转换为app时,程序本身不会创建它应该创建的文件。我对编程很陌生,如果你能帮助我,我将不胜感激。到目前为止,我已经尝试了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()

1 个答案:

答案 0 :(得分:4)

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

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