Type (s) d'opérande non pris en charge par Python TypeError pour%: 'fichier' et 'unicode'
Question
Je travaille sur une validation de champ Django et je ne comprends pas pourquoi je reçois une erreur de type pour cette section:
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()
Dois-je convertir les données d'une manière ou d'une autre avant de pouvoir les transmettre sous forme de variable chaîne?
La solution
Vérifiez vos parenthèses.
Faux
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
Peut-être raison.
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 )
Autres conseils
Juste un petit conseil - il vaut mieux utiliser le module sous-processus
et la classe Popen
au lieu de la fonction os.popen
. Plus de détails ici (documents) .
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow