我有一个有效的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()
答案 0 :(得分:4)
当您启动py2app创建的应用程序时,当前工作目录将更改为应用程序包内的“Contents / Resources”文件夹。因为您的脚本创建了一个相对于当前工作目录的文件,所以它最终会在应用程序内部生效。
(例如myapp.app/Contents/Resources/b.txt)