Python TypeError不受支持的操作数类型为%:'file'和'unicode'

Python TypeError不受支持的操作数类型为%:'file'和'unicode'

问题描述:

我正在进行django字段验证,但我无法弄清楚为什么我会收到此部分的类型错误:Python TypeError不受支持的操作数类型为%:'file'和'unicode'

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) 
+0

就是这样,谢谢! – Ryan 2009-08-03 17:34:38

只是一个小提示 - 这是更好地使用subprocess模块和Popen类,而不是os.popen功能。更多详情here (docs)