shell脚本创建的文件不是由python打开的?

时间:2012-01-08 21:51:56

标签: python

echo "Denied" > log.txt

以后log.txt在python中打开:

def read_file(logs,self):
    print 'here'
    f1=open(logs,"r","utf-8")
    for line in f1:
        print str(line)

在运行它时会出错:

"TypeError: coercing to Unicode: need string or buffer, instance found"

4 个答案:

答案 0 :(得分:3)

它应该是:

def read_file(self, logs):

使用反向参数顺序

def read_file(logs, self):

您的方法尝试在调用时打开self实例而不是日志:

self.read_file(logs)

答案 1 :(得分:2)

在致电read_file(logs)之前,请确保:

logs = "log.txt"

如有必要,请填写“log.txt”的完整路径,例如:

logs = "/home/user/log.txt"

此外,我不确定这是否是您问题中的拼写错误,请确保您声明read_file这样:

def read_file(self, logs):

也就是说,self必须先出现。

答案 2 :(得分:1)

您的logs变量必须是字符串“log.txt”才能生效。显然它是别的东西。

答案 3 :(得分:0)

如果文件的内容是问题,也许它不是asccii你可以做的 导入编解码器

def read_file(logs,self):     打印'这里'    f1 = codecs.open(“someFile”,“r”,“utf-8”)     F1 =开放(日志, “R”, “UTF-8”)     对于f1中的行:         print str(line)