python - 应用程序在源代码后不起作用

标签 python tkinter py2app platypus

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

最佳答案

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

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

关于python - 应用程序在源代码后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15936175/

相关文章:

python - 循环赛的分组列表组合

python - 函数变为 "unbound method"。为什么?

Python追加循环工作之谜

macos - 如果从 finder 执行应用程序包但从命令行运行良好,则使用 python 构建的 OSX 应用程序会立即退出

python - 使我的python程序成为应用程序

python - 如何将 myapp 放置在 mac osx 上通过 py2app 开发的应用程序位置

python - 在命令行中传递Python代码

python - 如何使用 Python 2.7 在 Tkinter 中设计 GUI 序列

python - 如何从重叠的形状中获取输出? Python 3.5 Tkinter

python - 使用 pyinstaller 分发我的 TKinter 应用程序不起作用