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

Posted

技术标签:

【中文标题】Python TypeError 不支持 % 的操作数类型:\'file\' 和 \'unicode\'【英文标题】:Python TypeError unsupported operand type(s) for %: 'file' and 'unicode'Python TypeError 不支持 % 的操作数类型:'file' 和 'unicode' 【发布时间】:2010-11-16 10:49:39 【问题描述】:

我正在处理 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()

在将数据作为字符串变量传递之前,我是否必须以某种方式转换数据?

【问题讨论】:

【参考方案1】:

检查你的括号。

错误

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 )

【讨论】:

【参考方案2】:

只是一个小提示——最好使用subprocess 模块和Popen 类而不是os.popen 函数。更多详情here (docs).

【讨论】:

以上是关于Python TypeError 不支持 % 的操作数类型:'file' 和 'unicode'的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:'int'对象不支持嵌套python列表中的项目分配[关闭]

代码错误Python:TypeError:/:'set'和'int'不支持的操作数类型

TypeError:'int'对象不支持项目分配Python

Python Numpy TypeError:输入类型不支持ufunc'isfinite'

Python OpenCV 立体相机校准阵列错误:TypeError:不支持 imagePoints1 数据类型 = 17

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