leet-speak

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Gute Idee :D, aber ich bezweifle das häufig das selbe am Ende rauskommen wird.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
BlackJack

@Xynon1: Wenn da nicht das gleiche heraus kommt, dann ist das Programm irgendwo kaputt, oder!?
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Das hatte ich doch schon im ersten Post erklärt, sieh mal bitte nach :)
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Ok, folgendes stellt mich noch vor eine Wand. Wie kann ich feststellen ob bei "sys.stdin" schon etwas beim Aufruf des Programms anliegt?
Denn ich würde gerne auch einen "normalen" Aufruf ermöglichen, so dass man wenn das Programm schlicht mit "python leet.py" aufgerufen wird, immer noch eine Abfrage einer Eingabe kommt. Momentan ist halt das Problem, wenn ich es wie in Leonidas Beispiel aufrufe alles was auf "sys.stdout" gelegt wird, ja auch an den Zweiten Aufruf übergeben wird, also auch die einfachen Eingabeaufforderungen.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Benutzeravatar
snafu
User
Beiträge: 6862
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ungewöhnliches Verhalten, aber du kannst mittels `select.select()` herausfinden, ob Daten in einem Stream darauf warten, verarbeitet zu werden:

Code: Alles auswählen

import select
import sys

def main():
    r,w,x = select.select([sys.stdin], [], [], 0)
    if r:
        print 'stdin: %r' % r[0].read()
    else:
        print 'no contents in stdin'

if __name__ == '__main__':
    main()

Code: Alles auswählen

urx@murx:~$ python test.py
no contents in stdin
urx@murx:~$ echo "foobar" | python test.py
stdin: 'foobar\n'
Falls du Windows benutzt, wirst du allerdings einen anderen Weg gehen müssen, weil `select()` dort nur für Sockets, nicht aber für Dateiobjekte funktioniert.
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Hehe, so weit war ich gerade auch, dank deinem Tipp "select.select" und wollte gerade Fragen, wie man das unter Windows macht ? :P
Ansonsten funktioniert select prima. :D

Hast du für Windows auch noch einen Anstoß ?
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
dahaze
User
Beiträge: 75
Registriert: Freitag 13. März 2009, 10:57
Wohnort: im Schwabenland

*Alten Thread wieder ausgrab* :D

Hallo Xynon1,

hast du mittlerweile eine Lösung für das select.select()-Probelm unter Windows gefunden?
Stehe gerade vor der gleichen Problematik...

Gruß,
Dahaze
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Nein, leider nicht, sonst hätte ich es gepostet.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Antworten