Re: [問題] file讀取問題

看板Python作者 (金が信念! XD)時間17年前 (2008/07/21 02:11), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《pinkisme ()》之銘言: : class random_pick: : def __init__(self,file_name): : self.r_content = open(file_name).readlines() : def random_pick(self,num): : w_content = random.sample(self.r_content,num) : def writeTofile(self): : pass : def mergeFile(self,*files): : self.data = [] : for file_name in files: : self.data = open(file_name).readlines() : files = ['0.txt','t2.txt'] : x.mergeFile(files) : 在mergeFile這個function會出錯, : 誤訊息是TypeError: coercing to Unicode: need string or buffer, list found : 改了很多次還是不曉得為啥會錯= =" : 這個function主要是拿來把很多檔案合成一個,方便處理 : 不過現在寫的有些問題,希望各位能幫忙看看@@" : 謝謝 我不是很確定你想要做的是什麼功能... 不過你可以試試看這個: data = sum([open(f,"rb").readlines() for f in file_name],[]) → cccx:def mergeFile(self,*files): <-- files 前面不用加* 07/21 00:42 → cccx:另外: open檔案後 最好加上close 可以避免重複開啟的問題 07/21 00:44 → cccx: 以及開啟太多檔案的問題 07/21 00:48 後面的說法不對... python 本來就有 garbage collecting, 即使你用了 gc.disable() 也只會關閉 cyclic GC(註1), 而由於 reference count 歸零的 GC 永遠會進行. 註1: 在有 cyclic reference 的時候, 即使一些 object 已經完全沒辦法取用, 它仍然可能有非零的 reference counter, 例如... for k in xrange(1000000): j = [] j.append(j) 在正常的情形下, 每次迴圈產生出的新 list 應該都會被 cyclic GC 釋放, 但如果呼叫過 gc.disable(), 那麼就會產生 memory leak 了. -- 「ふ…ふざけるな!そんあ短い咒文で、魔法を起動できるわけないだろうが! お前わマウゼルの神に逆らう氣なのか?!傲慢な~」 「失禮致しました、誠實に全力でお相手致します。 第一戰術級‧軍用攻性魔法‧出よ、武雷神〈トール〉!」 〈スクラップド‧プリンセス〉 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.109.224.64 ※ 編輯: Freak1033 來自: 140.109.224.64 (07/21 02:12)

07/21 10:54, , 1F
感謝大家的回答,問題解決了 ^^
07/21 10:54, 1F
文章代碼(AID): #18Wt_2jw (Python)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #18Wt_2jw (Python)