2013-04-10 6 views
1

У меня есть работающая программа Python + Tkinter, которая является создателем словаря. Однако, когда я конвертирую soucecode в приложение, сама программа не создает файл, который он должен создать. Я новичок в программировании, и я был бы признателен, если бы вы могли мне помочь. До сих пор я пытался использовать py2app и утконос, чтобы дать тот же результат.Приложение не работает после исходного кода

Вот код:

#!/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

Как примечание стороны, не хранить результат вызова 'пакет()' в переменном. Этот метод всегда возвращает None, а не ссылку на виджет. –

+0

Вы не создадите файл, который он создал для создания. Какие файлы _does_ создают вместо этого? Неправильное имя? Неверная папка? –

ответ

4

При запуске приложения, созданного py2app текущий рабочий каталог изменяется на «Содержание/Resources» папку внутри пакета приложения. Поскольку ваш скрипт создает файл относительно текущего рабочего каталога, он попадает внутрь приложения.

(для примеров myapp.app/Contents/Resources/b.txt)

+0

Я снова попытался py2app, и я заглянул в приложение и искал «b.txt» на жестком диске, все равно ничего не нашел – billwild