【问题标题】: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()

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

【问题讨论】:

    标签: python django unicode typeerror


    【解决方案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).

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-27
        • 1970-01-01
        • 2016-03-21
        • 2018-04-27
        • 2016-03-19
        • 2017-08-24
        • 2013-10-29
        • 2014-05-10
        相关资源
        最近更新 更多