如何更快地在文本文件中写入数字?

How to Write a Number in A Text File Faster?

我编写了一个程序,它需要 0.1092 秒来生成一个数字,但需要 787.26012 秒 =13 分钟来写入该数字 (3.81 MB) in/on 一个文本文件。

import time
import sys
import math
start = time.time()

input_file="First1_58MB_enwik9.txt"
with open(input_file, "rb") as file: #--> open file in binary read mode
  byte_obj = file.read() #--> read all binary data
g=int.from_bytes( byte_obj, byteorder=sys.byteorder)
binary_dt=bin(g)


int_v=int(binary_dt,2)
length = math.ceil(math.log(int_v, 256))
res = int.to_bytes(int_v, length=length, byteorder='little', signed=False)

open("output_file_2.txt", "wb").write(res)

end = time.time()
print("Total time (in seconds) = ",(end - start))
#---------------------------
start = time.time()
with open("output_file_1.txt", 'w') as f:
  f.write('%d' % g)

end = time.time()
print("Total time (in seconds) = ",(end - start))

有没有更快的方法在文本文件上写入这么大的数字?

此外,如果我将数字写入另一种类型的文件是否会更快,比如说我将数字写入二进制文件或不带扩展名的文件?

PS: 没有扩展名的文件术语是什么?

当我使用下面的代码时,我能够在一秒钟内生成 30mb 的文件。

s = "hey"*10000000 # multiply "hey" 10000000 times and then return the string
with open("output_file_1.txt", 'w') as f:
    f.write(s)

是否有必要明确地告诉 python 我们正在写入 .txt 文件的对象是整数?如果没有,那么...

Consider g as string instead of number and change your code to f.write(g). And then check if you see time improvement.