我有一个非常大的文件4GB,当我尝试阅读它时,我的电脑挂起.所以我想逐一阅读它并在处理完每件之后将处理过的零件存储到另一个文件中并阅读下一篇文章.
yield这些作品有什么方法吗?
我很想拥有一种懒惰的方法.
没有这个可以做以下i吗?
for i in range(some_number):
# do something
Run Code Online (Sandbox Code Playgroud)
如果你只是想做N次,并且不需要迭代器.
每天我都越来越喜欢python.
今天,我写了一些代码,如:
for i in xrange(N):
do_something()
Run Code Online (Sandbox Code Playgroud)
我不得不做N次.但每次都不依赖于i(索引变量)的值.我意识到我正在创建一个我从未使用过的变量(i),并且我认为"在没有这个无用的索引变量的情况下,确实存在更多的pythonic方式."
所以......问题是:你知道如何以更多(pythonic)美丽的方式完成这个简单的任务吗?
要读取文件的内容:
data = open(filename, "r").read()
Run Code Online (Sandbox Code Playgroud)
打开的文件立即停止在任何地方被引用,因此文件对象最终将关闭...并且它不应该影响使用它的其他程序,因为该文件仅用于读取而不是写入.
编辑:这实际上在我写的一个项目中咬了我 - 它促使我问这个问题.只有在内存不足时才清理文件对象,而不是在文件句柄用完时清理.因此,如果您经常这样做,最终可能会耗尽文件描述符并导致IO尝试打开文件以引发异常.
我想知道Python是否具有在for循环中将数据存储在默认变量中的概念.
例如,在perl中,等价物如下
foreach (@some_array) {
print $_
}
Run Code Online (Sandbox Code Playgroud)
谢谢,德里克