Type (s) d'opérande non pris en charge par Python TypeError pour%: 'fichier' et 'unicode'

StackOverflow https://stackoverflow.com/questions/1223563

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?

Était-ce utile?

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
scroll top