我有一个大约6MB数据的文件。所有数据都写在一行中。为什么以下命令需要超过15分钟才能完成?这是正常的吗?
infile = open('file.txt')
outfile = open('out.txt', 'w')
for line in infile.readlines():
outfile.write(line);
详细信息:
我正在使用Python 2.7。
wc 的输出:
评估1:
在文件中使用参考代码(由Ahsanul Haque和Daewon Lee建议):
for line in infile:
output.write(line):
时间:959.487秒。
答案 0 :(得分:1)
尝试以下代码段。 readlines()
加载内存上的所有数据,这似乎会导致很长时间。
infile = open('file.txt', 'r')
outfile = open('out.txt', 'w')
for line in infile:
outfile.write(line)
在Windows 10操作系统上使用我的python 3.5(64位),以下代码片段在几秒钟内完成。
import time
start = time.time()
with open("huge_text.txt", "w") as fout:
for i in range(1737623):
fout.write("ABCD ")
fout.write('\n')
for i in range(1737623):
fout.write("EFGH ")
fout.write('\n')
# end of with
infile = open('huge_text.txt', 'r')
outfile = open('out.txt', 'w')
for line in infile:
outfile.write(line)
outfile.close()
infile.close()
end = time.time()
print("Time elapsed: ", end - start)
"""
<Output>
Time elapsed: 1.557690143585205
"""
答案 1 :(得分:0)
尝试以块的形式阅读文件
infile = open('file.txt')
outfile = open('out.txt', 'w')
while True:
text = infile.read(100): # or any other size
if not text:
break
outfile.write(line);