您现在的位置是:主页 > news > 网站制作时如何分析竞争对手/网站制作推广电话
网站制作时如何分析竞争对手/网站制作推广电话
admin2025/6/2 19:54:28【news】
简介网站制作时如何分析竞争对手,网站制作推广电话,凡科做网站类型应该做哪个,系统开发毕业设计我想知道如何最好地处理在python中写入大文件. 我的python代码多次循环运行外部程序(古老的Fortran,具有奇怪的输入文件格式),读取其输出(一个行文件),执行一些非常简单的处理,然后写入已编译的输出文件.外部程序快速执行(不到1秒). import subprocess as sp f_compiled_out o…
我想知道如何最好地处理在python中写入大文件.
我的python代码多次循环运行外部程序(古老的Fortran,具有奇怪的输入文件格式),读取其输出(一个行文件),执行一些非常简单的处理,然后写入已编译的输出文件.外部程序快速执行(不到1秒).
import subprocess as sp
f_compiled_out = open("compiled.output", "w")
for i in range(len(large_integer)):
write_input_for_legacy_program = prepare_input()
sp.call(["legacy.program"])
with open("legacy.output", "r") as f:
input = f.readline()
output = process(input)
f_compiled_out.write(output)
close(f_compiled_out)
我可以想到三个选项来生成编译的输出文件.
>我已经在做什么.
>在主循环的每个循环上使用open(“ comiled.output”,“ a”)作为f来打开f_compiled_out:f.write(output)
>使用awk进行简单处理,并将输出分类到“ compiled.output”末尾.
那么(1)保持大文件打开并写入文件末尾的开销与(2)每次写入打开并追加文件的开销以及(3)使用awk进行处理并建立目录的开销是多少? “ compiled.output”.
整个输出在任何阶段都不需要存储在存储器中.
附言如果有人看到任何其他明显的事物会因为N_loops变大而减慢它的速度,那也太棒了!
解决方法:
打开和关闭文件肯定要花钱.但是,如果您的旧程序需要一秒钟或更多的时间来响应,您可能不会注意到.
def func1():
for x in range(1000):
x = str(x)
with open("test1.txt", "a") as k:
k.write(x)
1 loops, best of 3: 2.47 s per loop
def func2():
with open("test2.txt", "a") as k:
for x in range(1000):
x = str(x)
k.write(x)
100 loops, best of 3: 6.66 ms per loop
但是,如果文件变得很大,它就会变慢:(800 mb)
def func3(file):
for x in range(10):
x = str(x)
with open(file, "a") as k:
k.write(x)
12kb档案:
10 loops, best of 3: 33.4 ms per loop
800mb文件:
1 loops, best of 3: 24.5 s per loop
保持文件打开将主要消耗您的内存.
我建议使用SQlite来存储您的数据.
标签:performance,io,python
来源: https://codeday.me/bug/20191121/2054008.html