2011-04-13 39 views
4

到文件當我運行這段代碼:接收類型錯誤,而試圖用Python語言編寫

tickers = re.findall(r'Process Name: (\w+)', s) 

file = open("C:\Documents and Settings\jppavan\My Documents\My Dropbox\Python Scripts\Processes\GoodProcesses.txt","w") 
file.write(tickers) 
file.close() 

它返回常見的錯誤:

TypeError: expected a character buffer object

任何想法?

回答

16

findall()作爲名稱指示返回Python 列表而不是字符串/緩衝區。

你不能寫一個列表文件句柄 - 應該如何工作?

你期望什麼?

file.write(str(tickers)) 

爲列表的字符串表示形式?

或者

file.write(', '.join(tickers)) 

一個逗號分隔的列表項的級聯?

無論如何... write(..)需要一個字符串或緩衝區。

除此之外:不要調用你的文件句柄'文件'。

file()是一種內置方法。

+0

啊,這很有道理。我會很好用字符串表示或逗號分隔。這消除了錯誤,但沒有任何輸出到文件,即使它應該,所以我應該能夠從這裏弄清楚。 – Jared 2011-04-13 15:55:56

+0

另外,在命名文件文件時,這確實使我不想這樣做,但是是的...... – Jared 2011-04-13 15:57:06

+0

明顯地,你的正則表達式不匹配。以pdb和調試它。 – 2011-04-13 15:57:38