Python TypeError tipos de operandos no compatibles para%: 'archivo' y 'unicode'
Pregunta
Estoy trabajando en una validación de campo de django y no puedo entender por qué recibo un error de tipo para esta sección:
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()
¿Tengo que convertir datos de alguna manera antes de poder pasarlos como una variable de cadena?
Solución
Verifique su paréntesis.
Incorrecto
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
Podría ser correcto.
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 )
Otros consejos
Solo un pequeño consejo: es mejor usar el módulo subprocess
y la clase Popen
en lugar de la función os.popen
. Más detalles aquí (docs) .
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow