[英]Python Write dynamically huge files avoiding 100% CPU Usage
我正在借助这个好东西来解析一个大约2 GB的CSV
巨大文件。 现在必须为新文件中的每一列生成动态文件,其中列名为文件名。 因此,我编写了以下代码来编写动态文件:
def write_CSV_dynamically(self, header, reader):
"""
:header - CSVs first row in string format
:reader - CSVs all other rows in list format
"""
try:
headerlist =header.split(',') #-- string headers
zipof = lambda x, y: zip(x.split(','), y.split(','))
filename = "{}.csv".format(self.dtstamp)
filename = "{}_"+filename
filesdct = {filename.format(k.strip()):open(filename.format(k.strip()), 'a')\
for k in headerlist}
for row in reader:
for key, data in zipof(header, row):
filesdct[filename.format(key.strip())].write( str(data) +"\n" )
for _, v in filesdct.iteritems():
v.close()
except Exception, e:
print e
现在,使用100% CPU
写入这些巨大的文件大约需要50
秒。因为服务器上还有其他繁重的工作。 我想阻止我的程序仅使用10%到20%的CPU并写入这些文件。 无论花费10-15分钟。 如何优化我的代码,使其应限制10-20%的CPU使用率。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.