我正在嘗試創建for循環並打開一堆文件描述符,但不幸的是它在for循環中不適用於我。打開()不打開for循環中的文件描述符
>>> import os
>>> os.getpid()
6992
>>> open('/tmp/aaa', 'w')
<open file '/tmp/aaa', mode 'w' at 0x7fa7c9645ae0>
>>> for i in xrange(10):
... open('/tmp/aaa{0}'.format(str(i)), 'w')
...
上面的腳本只打開1 FD:
[email protected]:~$ ls -alht /proc/6992/fd/ | grep tmp
l-wx------ 1 vagrant vagrant 64 Nov 29 15:18 11 -> /tmp/aaa
問題:
1 - 如何使用循環打開多個文件描述符?
2 - 上述代碼有什麼問題?
哇,非常感謝。沒有意識到gc部分是公開的。 – Vor
@Vor,垃圾收集器不關心這是否是一個文件。它破壞了對象。文件對象通常在銷燬時關閉其文件描述符。 – ForceBru
我看到了,我看到第一個,因爲它不是垃圾收集('foo = _') – Vor