Python TypeErrorは、%のサポートされていないオペランドタイプです: 'file'および 'unicode'
質問
djangoフィールド検証に取り組んでいますが、このセクションでタイプエラーが発生する理由がわかりません:
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()
データを文字列変数として渡す前に、何らかの方法でデータを変換する必要がありますか?
解決
括弧を確認してください。
間違っている
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
正しいかもしれません。
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 )
他のヒント
ちょっとしたヒント- os.popen
関数の代わりに subprocess
モジュールと Popen
クラスを使用する方が良いでしょう。詳細については、こちら(ドキュメント)をご覧ください。
所属していません StackOverflow