ich habe ein kleines problem, komm aber nicht drauf wo der hacken ist.
In meinem Programm sind 2 Funktionen, die jenachdem auf welchem system sie gestartet wurden
ausgeführt wird, also einmal Linux und Win.
System erkennung habe ich mit dem modul sys erreicht. (sys.platform)
Wenn ich das Programm unter win7 starte dann führt er auch die entsprechende Funktion aus (main_win32), jedoch
in einer endlos schleife ich find den fehler nicht warum er das macht, vllt sehe ich vor lauter Bäumen den Wald nicht mehr.
Unter Linux läuft alles ohne probleme
Das programm is noch nicht kompett fertig, befehle für win7 etc ...
Gruß Joe
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-
'''
Created on 06.06.2012
@author: user1
'''
import os
import subprocess
import sys
#anzeigen = '\nls rezepte\n'
#anzeigen = None
loeschen = 'rm rezepte/%s'
erstellen = 'gedit rezepte/%s'
pfad = os.getcwd()
pfad2 = 'rezepte/'
system = sys.platform
def main_linux2(): # Linux Funktion
anzeigen = '\nls rezepte\n'
while True:
print '\033[33m \n1 = alle Rezepte anzeigen'
print '2 = Rezept erstellen'
print '3 = suchen'
print '4 = ein Rezept anzeigen'
print '5 = Löschen'
print '0 = \033[31mBeenden\033[m'
eing = raw_input('\nwas möchten sie tun?: ')
if eing == '0':
print '\033[36mENDE\033[m'
sys.exit()
elif eing == '1':
#os.system(anzeigen)
for entry in os.listdir('rezepte/'):
print entry
elif eing == '2':
name = raw_input('bitte Namen für das Rezept eingeben: ')
os.system(erstellen % name)
elif eing == '3':
suche = raw_input('suche: ')
if os.path.exists(os.path.join(pfad2, suche)):
print 'vorhanden'
eing = raw_input('Rezept öffnen?\033[31m(ja/nein)\033[m:')
if eing == 'ja':
subprocess.Popen(['gedit', suche])
elif eing == 'nein':
continue
elif eing == len(''):
print 'eingabe nicht erkannt'
continue
else:
print '\033[31mnicht vorhanden\033[m'
elif eing == '4':
name = raw_input('welches Rezept möchten sie öffnen?: ')
subprocess.Popen(['gedit', name])
elif eing == '5':
name = raw_input('welches Rezept möchten sie Löschen?: ')
os.system(loeschen % name)
else:
print '\033[31meingabe nicht erkannt!\033[m'
def main_win32(): # Windows Funktion
anzeigen = '\ndir rezepte'
while True:
print '\n1 = alle Rezepte anzeigen'
print '2 = Rezept erstellen'
print '3 = suchen'
print '4 = ein Rezept anzeigen'
print '5 = Loeschen'
print '0 = Beenden'
eing = raw_input('\nwas möchten sie tun?: ')
if eing == '0':
print 'ENDE'
sys.exit()
elif eing == '1':
#os.system(anzeigen)
for entry in os.listdir('rezepte/'):
print entry
elif eing == '2':
name = raw_input('bitte Namen für das Rezept eingeben: ')
os.system(erstellen % name)
elif eing == '3':
suche = raw_input('suche: ')
if os.path.exists(os.path.join(pfad2, suche)):
print 'vorhanden'
eing = raw_input('Rezept öffnen?(ja/nein)')
if eing == 'ja':
subprocess.Popen(['gedit', suche])
elif eing == 'nein':
pass
elif eing == len(''):
print 'eingabe nicht erkannt'
pass
else:
print 'nicht vorhanden'
elif eing == '4':
name = raw_input('welches Rezept möchten sie öffnen?: ')
subprocess.Popen(['gedit', name])
elif eing == '5':
name = raw_input('welches Rezept möchten sie Löschen?: ')
os.system(loeschen % name)
else:
print 'eingabe nicht erkannt!'
if sys.platform.startswith('linux2'):
main_linux2()
elif sys.platform.startswith('win32'):
main_win32()
else:
print 'fehler!!! Platform nicht erkannt'
print 'Windows oder Linux?'