Python Typeerror nicht unterstützten Operandentyp (e) für%: ‚Datei‘ und ‚Unicode‘
Frage
Ich arbeite an einer django Feldvalidierung und ich kann nicht herausfinden, warum ich einen Typfehler für diesen Abschnitt erhalten:
def clean_tid(self):
data = self.cleaned_data['tid']
stdout_handel = os.popen("/var/www/nsmweb/jre1.6.0_14/bin/java -jar /var/www/nsmweb/sla.jar -t %s grep -v DAN") % data
result = stdout_handel.read()
Muß ich Daten konvertieren irgendwie, bevor ich sie in einem String-Variable übergeben kann?
Lösung
Überprüfen Sie Ihre Klammer.
Wrong
stdout_handel = os.popen("/var/www/nsmweb/jre1.6.0_14/bin/java -jar /var/www/nsmweb/sla.jar -t %s grep -v DAN") % data
könnte richtig sein.
stdout_handel = os.popen("/var/www/nsmweb/jre1.6.0_14/bin/java -jar /var/www/nsmweb/sla.jar -t %s grep -v DAN" % data )
Andere Tipps
Nur ein kleiner Tipp - es ist besser subprocess
Modul und Popen
Klasse statt os.popen
Funktion zu verwenden. Weitere Details hier (docs) .
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow