python for循环 文件写入的效率_Python:从数千个文件的列表中读取、提取和写入的for循环性能很慢...

博客讨论了如何优化Python代码以提高处理大量ASCII光栅文件的效率。作者面临的问题是,当处理全数据集时,代码运行速度缓慢。代码中涉及从ASCII文件中提取特定单元格值,并存储在列表中。尽管尝试了关闭文件对象,但没有显著提升。博客寻求关于可能的效率瓶颈和代码改进的建议。
摘要由CSDN通过智能技术生成

我从350000(20kb)ascii光栅文件中提取150个不同的单元格值。我当前的代码可以处理来自100个ascii文件的150个单元格值,但是在完整的数据集上运行时非常慢。在

我还在学习python,有没有明显的效率低下?或者建议改进下面的代码。在

我尝试过在第二个函数中关闭'dat'文件;没有任何改进。在dat = None

第一:我有一个函数,它从笛卡尔网格返回行和列的位置。在

^{pr2}$

第二个:一个函数,我在for循环中向它传递150个'id'、'x'和'y'值的列表。第一个函数在内部调用,用于提取附加到新列表的单元格值。我还有一个文件列表“asc_list”和“date_list”中对应的时间。请忽略count/enumerate,因为我以后使用这个;除非它妨碍效率。在def asc2series(id, x, y):

#count = 1

ls_id = []

ls_p = []

ls_d = []

for n, (asc,date) in enumerate(zip(asc, date_list)):

dat = gdal.Open(asc_list)

gt = dat.GetGeoTransform()

pixel, line = world2Pixel(gt, east, nort)

band = dat.GetRasterBand(1)

#dat = None

value = band.ReadAsArray(pixel, line, 1, 1)[0, 0]

ls_id.append(id)

ls_p.append(value)

ls_d.append(date)

非常感谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值