我有一个导入CSV文件的脚本。 它有效,但在我看来它真的很慢。 由于CSV文件很大,脚本超过了最大执行时间。
有没有人就如何提高我的代码速度提出建议?
仅供参考:由于S3身份验证,我无法使用内置表单功能。
function myFunction() {
var liquidityBalance = SpreadsheetApp.openByUrl(liquidityBalanceSheet).getSheetByName('Liquidity');
var s3 = S3.getInstance(awsAccessKeyId, awsSecretKey);
var fromS3 = s3.getObject(bucket, file);
var data = Utilities.parseCsv(fromS3.getDataAsString(), '\t');
var csv = []
liquidityBalance.clearContents();
for (var i = 0; i < data.length; i++) {
var row = []
for (var a = 0; a < data[i].length; a++) {
row.push(data[i][a]);
}
liquidityBalance.appendRow(row);
}
}
答案 0 :(得分:1)
希望以下代码运行得更快。此代码汇编所有数据,然后将汇编数据写入一个操作,而不是一次附加一行。如果代码仍然超时,那么您将需要运行部分数据并知道最后离开的位置以继续下一批。
def remove_item(self, item_name, quantity, price):
if quantity >= self.items[item_name]:
self.total -= (self.items[item_name] * price)
del self.items[item_name]
else:
self.total -= (quantity * price)
self.items[item_name] -= quantity