subprocess the next

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
newyew
User
Beiträge: 1
Registriert: Dienstag 13. März 2007, 23:18

subprocess the next

Beitragvon newyew » Dienstag 13. März 2007, 23:52

Hi,
ich habe ein kleines Problem mit dem Modul subprocess. Ich möchte mittels
eines externen Programms Dateien verschlüsseln. Wenn ich folgenden Code
verwende, dann bekomme ich die Fehlermeldung "ccrypt: cannot open /dev/tty".

Code: Alles auswählen

import subprocess

cmd = ['./bin/ccrypt','-e','test.pdf']
##cmd = ['ls','-l']
process = subprocess.Popen(cmd,
                    shell=False,
                    stdout=subprocess.PIPE,
                    stderr=subprocess.PIPE,
                    stdin=subprocess.PIPE)
print process.stdout.read()
print process.stderr.read()



Verwende ich zum Test "cmd = ['ls','-l']" funktioniert alles. Das Programm
ccrypt wartet eigentlich auf die Eingabe eines Keys, welchen ich mit
process.stdin.write() übergeben möchte. Ccrypt wird aber leider nicht
ausgeführt.

Kommandozeile von ccrypt:

lars@machine:~/Desktop/crypto$ ccrypt -e test.pdf
Enter encryption key:
Enter encryption key: (repeat)

Vielleicht hat jemand eine Idee.
Lars
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Mittwoch 14. März 2007, 00:23

Hallo newyew, willkommen im Forum,

Das problem liegt daran, dass ccrypt ein Pseudo-Terminal erwartet, subprocess aber keines liefert.

Am besten du siehst dir den Thread "pty -- Pseudoterminals" an, dort geht es um das gleiche Problem. Oder du suchst im Forum nach "pexpect", das liefert auch einige Treffer.
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: Google [Bot]