【发布时间】:2021-09-08 20:17:18
【问题描述】:
将数据写入文件的哪种方式更好?
# 1 way
whole_data = ""
for file_name in list_of_files:
r_file = open(file_name, 'r')
whole_data += r_file.read()
r_file.close()
with open("destination_file.txt", 'w') as w_file:
w_file.write(whole_data)
# 2 way
for file_name in list_of_files:
r_file = open(file_name, 'r')
with open("destination_file.txt", 'a') as w_file:
w_file.write(r_file.read())
r_file.close()
# separate open/colse for write
w_file = open("destination_file.txt", 'w')
for file_name in list_of_files:
with open(file_name, 'r') as r_file:
w_file.write(r_file.read())
w_file.close()
1 方法首先将整个数据保存到超级字符串中,然后将其写入目标文件。 2种方式从文件中读取并立即将数据附加到目标文件。 我曾经在代码中使用两种方式,但我不确定哪种方式更好。你知道这两种方式的优缺点吗?如果您知道更好的做法,请分享。 // 编辑: 添加第三种方式
【问题讨论】:
-
您可以检查读取和写入文件需要更多时间
-
使用python的特殊timeit模块
-
并在
r_file周围加上一个with -
当然。我去做。但我不确定它是否适用于每种大小的文件。
标签: python python-2.7 file stream read-write