【发布时间】:2017-07-29 22:49:34
【问题描述】:
我正在尝试从 2 个文件中多核读取数据,但执行此代码后 list1 和 list2 为空。
from multiprocessing import Process
def getfile(fn, out):
print("start reading file {}".format(fn))
with open(fn) as file:
for line in file:
out.append(line)
if __name__ == '__main__':
file1 = []
file2 = []
p1 = Process(target=getfile, args=("100.txt", file1))
p2 = Process(target=getfile, args=("98.txt", file2))
p1.start()
p2.start()
p1.join()
p2.join()
print(file1)
print(file2)
如何使用多处理将文件中的数据写入列表或可迭代的东西?
【问题讨论】:
-
看this
-
如果您出于性能目的尝试执行此操作,您需要注意,如果两个文件都驻留在同一个物理旋转磁盘上,同时读取这两个文件就不能使整体读取时间更快,实际上可能会使其变慢,因为磁盘磁头可能会进行额外的寻道。
标签: python multiprocessing python-multiprocessing