作者huggie (huggie)
看板Python
标题Re: [闲聊] python有些很奇怪的地方...
时间Sun Jan 8 23:06:22 2006
※ 引述《Leland (报废机器人的传说)》之铭言:
: ※ 引述《huggie (huggie)》之铭言:
: : 我自己会用
: : for line in open('/etc/xxx', 'r'):
: : print line
: : 这样应该也不用 close() 了
: : 因为应该会 out of scope 然後自动被 garbage collect 吧!
: : 我是这麽想的
: 我不确定这样 out of scope 会不会被 garbage collect 耶,
: 就算会我也不知道会不会自己 close 掉。
我刚刚在 Linux 上面做了一点小测试
fd = []
while 1:
fd.append(open('data', 'r'))
几乎在我按下 enter 执行的同时就会发现已经超过系统负荷了:
usa:/home/thw/diginorth/dbEST# ./test.py
Traceback (most recent call last):
File "./test.py", line 7, in ?
IOError: [Errno 24] Too many open files: 'data'
但如果是...
while 1:
fd = open('data', 'r')
或者是
while 1:
for line in open('data', 'r'):
pass
就会跑不完,因此我猜 garbage collection 把 fd 清除後会关档
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.129.65.137
1F:推 wawawa:酷...我没想过有这种测试方法:Q 01/08 23:43