相关疑难解决方法(0)

python多久刷新一次文件?

  1. Python多久刷新一次文件?
  2. Python多久刷新一次到stdout?

关于(1)我不确定.

至于(2),我相信Python在每一行之后都会刷新到stdout.但是,如果你将stdout重载为一个文件,它是否经常刷新?

python file flush

207
推荐指数
4
解决办法
20万
查看次数

在Python中生成非常大的文本文件的时间性能

我需要生成一个非常大的文本文件.每一行都有一个简单的格式:

Seq_num<SPACE>num_val
12343234 759
Run Code Online (Sandbox Code Playgroud)

我们假设我将生成一个包含1亿行的文件.我尝试了两种方法,令人惊讶的是它们提供了非常不同的时间性能.

  1. 对于超过100米的循环.在每个循环中我创建短字符串seq_num<SPACE>num_val,然后我将其写入文件.这种方法需要花费很多时间.

    ## APPROACH 1  
    for seq_id in seq_ids:
        num_val=rand()
        line=seq_id+' '+num_val
        data_file.write(line)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 对于超过100米的循环.在每个循环中我创建短字符串seq_num<SPACE>num_val,然后将其附加到列表中.当循环结束时,我迭代列表项并将每个项写入文件.这种方法花费的时间少得多.

    ## APPROACH 2  
    data_lines=list()
    for seq_id in seq_ids:
        num_val=rand()
        l=seq_id+' '+num_val
        data_lines.append(l)
    for line in data_lines:
        data_file.write(line)
    
    Run Code Online (Sandbox Code Playgroud)

注意:

  • 方法2有2个循环而不是1个循环.
  • 我在循环中写入方法1和方法2的文件.因此这两个步骤必须相同.

所以方法1必须花费更少的时间.什么提示我缺少什么?

python algorithm performance large-files large-data

12
推荐指数
3
解决办法
1085
查看次数

标签 统计

python ×2

algorithm ×1

file ×1

flush ×1

large-data ×1

large-files ×1

performance ×1