2012-01-08 89 views
1

echo "Denied" > log.txt由shell腳本創建的文件不是由python打開的?

後的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" 
+0

什麼是'self' for? – joaquin 2012-01-08 22:00:18

回答

3

大概應該是:

def read_file(self, logs): 

與反向參數順序

def read_file(logs, self): 

你的方法試圖打開self實例,而不是記錄的,當你撥打:

self.read_file(logs) 
+0

哦,哦,哦....它的簡單的錯誤。謝啦 – Jack 2012-01-08 22:09:36

1

logs變量必須是字符串 「的log.txt」爲此工作。顯然這是別的。

2

在致電read_file(logs),確保:

logs = "log.txt" 

如果必要的話,寫的完整路徑 「log.txt中」,例如:

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

而且,我不當然,如果這是您的問題中的錯字,請確保您聲明read_file是這樣的:

def read_file(self, logs): 

也就是說,self必須先到。

+0

+1爲正確的猜測 – joaquin 2012-01-08 22:30:09

0

如果文件的內容是問題,也許它不是你可以做的asccii 進口編解碼器

高清READ_FILE(原木,個體經營): 打印 '這裏' codecs.open F1 =( 「someFile」, 「R」, 「UTF-8」) F1 =開放(日誌,「R 「,」utf-8「) for line in f1: print str(line)

相關問題