Ordner erstellung mit Tkinter

Fragen zu Tkinter.
Antworten
Casio666
User
Beiträge: 13
Registriert: Dienstag 2. Juni 2015, 11:32

Hallo ich würde gerne ein Projekt von mir das bisher ohne optische Oberfläche aus kam gerne mit einer Oberfläche ausstaten. Es soll jedesmal wen ein Knopf gedrückt wird ein Ordner erstellt werden der genauso heist wie das was man in ein Eingabefeld eingegeben hat.Danach möchte ich dan in das Verzeichniss gehen und dort dan einen weiteren Ordner erstellen und eine Txt datei erstellen in die Datei sollen dan wieder bestimmte Eingabefelder rein geschrieben werden.
Leider verträgt sich anscheinend Tkinter nicht mit dem Befehl os.mkdir. Ich hab zwar beide bibleotheken aufgerufen aber ich glaube da liegt das Problem

Code: Alles auswählen

from tkinter import *

import os
import sys

def schreiben():
    os.mkdir(Stadt)
    os.chdir(Stadt)


knopf2 = Button(fenster, text="klicken", command=schreiben)
knopf2.pack()
Zuletzt geändert von Casio666 am Montag 29. Juni 2015, 14:50, insgesamt 4-mal geändert.
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

@Casio666: os.chdir solltest Du nicht verwenden, weil es einen globalen Zustand ändert, der unfindbare Fehler verursachen könnte. os und tkinter arbeiten ohne weiteres zusammen. Was ist denn der genaue Fehler? Was erwartest Du und was passiert?
Casio666
User
Beiträge: 13
Registriert: Dienstag 2. Juni 2015, 11:32

Exception in Tkinter callback
Traceback (most recent call last):
File "D:\Python34\lib\tkinter\__init__.py", line 1533, in __call__
return self.func(*args)
File "D:/Python34/Ordner erstellunggui.py", line 33, in schreiben
os.mkdir(Stadt)
TypeError: mkdir: illegal type for path parameter


sobald ich auf den Button drücke sollte automatisch ein Ordner erstellt werden der genauso heist wie der String Stadt
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

@Casio666: welchen Typ hat denn Stadt?
Casio666
User
Beiträge: 13
Registriert: Dienstag 2. Juni 2015, 11:32

Code: Alles auswählen

st = Label(text="Stadt")
st.pack()
Stadt = Entry()
Stadt.pack()
Casio666
User
Beiträge: 13
Registriert: Dienstag 2. Juni 2015, 11:32

Sorry ich hab mir das os.mkdir irgent wo aus dem Internet raus gesucht ich hatte da kein Lehrbruch dafür.Ihr könnt mich da gerne verbessern.Bisher lief es aber sehr zuverlässig
Casio666
User
Beiträge: 13
Registriert: Dienstag 2. Juni 2015, 11:32

Weis da keiner etwas?
BlackJack

@Casio666: `Stadt` ist halt keine Zeichenkette sondern ein `Entry`-Widget. Lesestoff: http://effbot.org/tkinterbook/entry.htm
Casio666
User
Beiträge: 13
Registriert: Dienstag 2. Juni 2015, 11:32

Danke schon mal für die Antwort gibt es das aber auch in Deutsch ?
BlackJack

@Casio666: Dokumentation eher nicht, nein. „It's english, get over it
Antworten