Seite 1 von 1

kann keine pipe erstellen

Verfasst: Mittwoch 27. Februar 2008, 14:13
von Tomek
Ich will eine "named pipe" erstellen mit python und etwas reinschreiben. Das Problem ist das sich python aufhängt bzw. einfriert wenn ich das machen will.


als testcode habe ich mal einen code von http://my.opera.com/zomg/blog/2007/0...nd-named-pipes genommen:

Code: Alles auswählen

import os

# the name of the pipe
pipeName = 'testpipe'

# we will get an error if the pipe exists
# when creating a new one, so try removing it first
try:
 os.unlink(pipeName)
except:
 pass

# create the pipe and open it for reading
os.mkfifo(pipeName)
pipe = open(pipeName,'r')

# read forever and print anything written to the pipe
while True:
 data = pipe.readline()
 if data != '':
  print repr(data)


zum start gebe ich einfach "python pipe.py" ein und das Programm bleibt genau beim open befehl stehen und macht nichts mehr und lässt sich nur mit CTR-C beenden:

Code: Alles auswählen

$ python pipe.py 
Traceback (most recent call last):
  File "pipe.py", line 15, in <module>
    pipe = open(pipeName,'r') 

Verfasst: Mittwoch 27. Februar 2008, 14:17
von Hyperion
Ja und? Genau das soll es doch auch! Du musst halt irgend etwas in die Pipe reinschreiben (lassen), damit etwas gelesen werden kann!

(Im übrigen bleibt das Programm weiter unten "stehen", in der Zeile mit readline() !)

Verfasst: Mittwoch 27. Februar 2008, 15:13
von BlackJack
Die in der Ausnahme angegebene Zeile gibt's im Quelltext gar nicht. Und man sollte den Quelltext auch richtig einrücken.

Verfasst: Mittwoch 27. Februar 2008, 15:19
von Tomek
sorry habs jetzt oben korrigiert....

ok, danke erstmal. ist tatsächlich so das er auf eingabe wartet und nichts macht, wenn ich einfach per echo was eingebe gibt er mir das korrekt aus sofort. Verstehen tu ich das aber immernoch nicht ganz, da wenn ich nach dem open befehl z.b. ein print "test" eingebe er mir dieses nicht ausführt, also er hängt eben für ewig da drin, naja. Ich bin etwas neu in python und auch mit pipes habe ich nie gearbeitet.

Kann mir jemand nur noch bitte sagen wie ich es jetzt schaffe eine pipe zu erstellen, zu öffnen und dann etwas reinzuschreiben? Ich plage mich seit 12 uhr rum damit heute .. :)

Verfasst: Mittwoch 27. Februar 2008, 15:33
von Hyperion
Ohne es zu wissen tippe ich mal, dass man eine solche zum Schreiben öffnen muss und dann ganz normal mit den File-Methoden weiterarbeiten kann - so wie jetzt ja auch schon ;-)

Die Frage, die sich mir stellt: Wozu zum Geier willst Du das haben??? Ist doch für einen Neuling eher uninteressant ...

Verfasst: Mittwoch 27. Februar 2008, 15:46
von Tomek
ich bin nur neu in python :)

ich hab 2 parallele programme laufen eines in C++ und eines in python. Das Python captured mit pcapy pakete vom WLAN und das C Programm soll diese aufnehmen und modifizieren und in eine datei schreiben, dazu haben sich auf den ersten Blick für mich Pipes am besten geeignet empfunden. Ich bin etwas eingerostet was meine Programmierkunst angeht aber so langsamm komm ich (gezwungenermaßen) rein und da mein Beteuer gerade verreist ist und mir nicht helfen kann such ich mir eben etwas Hilfe damit ich auch mal vorrankomm ;)