作者Freak1033 (金が信念! XD)
看板Python
标题Re: [问题] file读取问题
时间Mon Jul 21 02:11:11 2008
※ 引述《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)
1F:推 pinkisme:感谢大家的回答,问题解决了 ^^ 07/21 10:54