說我從兩個數組印數到一個文件:如何加快逐行打印到Python中的文件?
from numpy import random
number_of_points = 10000
a = random.rand(number_of_points)
b = random.rand(number_of_points)
fh = open('file.txt', 'w')
for i in range(number_of_points):
for j in range(number_of_points):
print('%f %f' % (a[i], b[j]), file=fh)
我覺得這是賺很多調用系統打印的,而發送包含該信息會更快的呼叫。它是否正確?如果是這樣,我怎麼能這樣做?有更快的方法來實現這個嗎?
它有多慢?經過測試,你是否確定它對於你的目的來說太慢了?如果是這樣,你確定罪魁禍首是重複的「打印」電話?你有沒有試過'print('\ n'.join(['%f%f'%(a [i],b [i])in range(number_of_points)])''? – TigerhawkT3
在我的應用程序中,這個部分的任何速度改進都是需要的。分析引腳'print'是罪魁禍首。我將如何做以上的嵌套for循環?上面編輯包含嵌套'for'循環。 – bfletch
@ TigerhawkT3:這個建議會在內存中創建一個100M的'str'列表,以及一個'str',它們的總長度都是所需的峯值RAM。這是需要多GB的內存,比許多系統擁有的要多。你不想用一種不會零碎寫的解決方案來解決這個問題。 – ShadowRanger