gpt4 book ai didi

Python 动态写入大文件避免 100% CPU 使用率

转载 作者:太空宇宙 更新时间:2023-11-03 16:54:26 24 4
gpt4 key购买 nike

我正在 this great stuff 的帮助下解析一个大约 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 使用率。

最佳答案

有多种方法可以实现这一目标:

  • Nice过程 - 简单明了。

  • cpulimit - 只需将您的脚本和 CPU 使用情况作为参数传递即可:

    cpulimit -P/path/to/your/script -l 20

  • Python 的 resource包以从脚本设置限制。请记住,它是在绝对 CPU 时间下工作的。

关于Python 动态写入大文件避免 100% CPU 使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35547734/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com