2

我在 python 脚本中有一个简单的 For 循环:

for filename in filenames:
    outline= getinfo(filename)
    outfile.write(outline)

这个 For 循环是从 HTML 页面中提取数据的较大脚本的一部分。我有将近 6GB 的 html 页面,并且想在所有这些页面上尝试之前进行一些测试运行。

我已经搜索过,但找不到在 n 次迭代后让我的 For Loop 中断的方法(比如说 100 次。)

4

4 回答 4

11
for filename in filenames[:100]:
    outline= getinfo(filename)
    outfile.write(outline)

列表切片filenames[:100]会将文件名列表截断为仅前 100 个元素。

于 2013-06-11T17:17:18.080 回答
8

为你的 for 循环保留一个计数器。当您的计数器达到 100 时,中断

counter = 0
for filename in filenames:
    if counter == 100:
        break
    outline= getinfo(filename)
    outfile.write(outline)
    counter += 1
于 2013-06-11T17:16:58.203 回答
2

我喜欢@kqr 的回答,但只是另一种考虑的方法,而不是取前 100 个,你可以取一个随机的n多个:

from random import sample
for filename in sample(filenames, 10):
    # pass
于 2013-06-11T17:25:31.347 回答
1

使用Python 2 和 3 中提供的内置函数enumerate() 。

for idx,filename in enumerate(filenames):
    if idx == 100:
        break
    outline= getinfo(filename)
    outfile.write(outline)

也看看这个

于 2020-05-27T21:22:14.920 回答