我会对目前花费大量时间的文本文件进行一些处理。我从活动监视器中发现,当前应用程序只使用了1个线程,因此我决定将文件拆分为multiprocessing.cpu_count()等于文件并单独执行相同的过程。
我的代码如下:
with open(filename) as f:
"do the process"
我想将其更改为:
with open(filename) as f:
files = f.splitinto(cpu_count)
for file in files:
"start the threads to do the same process for each file"
答案 0 :(得分:1)
file.readlines()
为您提供文本文件的行作为列表。这意味着如果您有一个包含100行的文本文件,readlines()
将为您提供长度为100的list
- 其中每个项目都是您文件中的一行。接下来,你可以这样做:
with open('test.txt', 'r') as myfile:
lines = myfile.readlines()
lines_list[0] = lines[0:len(lines)/cpu_count)
# ... and so on..
之后,您可以根据需要划分线条并处理它们。