如何使用azure函数在azure blob存储库中编辑*.csv文件?

2024-09-27 19:25:10 发布

您现在位置:Python中文网/ 问答频道 /正文

目前我正在使用Azure,我对DataFactory中的预定义函数感到不满意,因为它们在后台启动集群,这对于我的问题绝对不是必需的。 我收到一个预定义文件夹中的csv文件,希望选择一组列,并将它们以特定顺序存储在csv文件中。 目前,我的文件如下所示:

JSON文件:

  "bindings": [
    {
      "name": "myblob",
      "type": "blobTrigger",
      "path": "input-raw",
      "connection": "AzureWebJobsStorage",
      "direction": "in"
    },
    {
      "name": "outputblob",
      "type": "blob",
      "path": "{blobTrigger}-copy",  
      "connection": "AzureWebJobsStorage",
      "direction": "out"
    }
  ],
  "disabled": false,
  "scriptFile": "__init__.py"
}

init.py:

import logging
import azure.functions as func

def main(myblob: func.InputStream, outputblob: func.Out[func.InputStream]):
    logging.info(f"Python blob trigger function processed blob \n"
                 f"Name: {myblob.name}\n"
                 f"Blob Size: {myblob.length} bytes")
    outputblob.set(myblob)

我的函数在文件夹中选取一个文件,并将其复制到同一文件夹中,最后使用“-copy”。 有没有一种简单的方法可以访问数据并用python编辑它

Toll现在我尝试使用“csv”、“io”和“fileinput”软件包读取信息,但直到现在我还无法编辑甚至查看VisualStudioCode中的数据

如果你需要更多的信息,请告诉我

最好的 P


Tags: 文件csvpath函数name文件夹typeconnection
1条回答
网友
1楼 · 发布于 2024-09-27 19:25:10

事实上,没有办法“编辑”该.csv文件。但是您可以下载.csv文件并更改它,然后上载以覆盖azure上的.csv文件

顺便说一下,如果我读对了,你的函数有个大问题。当azure函数被触发时,您的容器中将有无限的“xx副本”文件。我的意思是,输出文件将是函数的触发条件,函数将是无限的

这是我的函数,它使用func中的InputStream读取blob数据:

import logging

import azure.functions as func


def main(myblob: func.InputStream):
    
    logging.info(myblob.read().decode("utf-8") );
    logging.info(f"Python blob trigger function processed blob \n"
                 f"Name: {myblob.name}\n"
                 f"Blob Size: {myblob.length} bytes")

{
  "scriptFile": "__init__.py",
  "bindings": [
    {
      "name": "myblob",
      "type": "blobTrigger",
      "direction": "in",
      "path": "samples-workitems",
      "connection": "AzureWebJobsStorage"
    }
  ]
}

在我的情况下,我首先将blob数据读取为字节,然后将其转换为字符串。让我知道这是否能解决您的问题。:)

相关问题 更多 >

    热门问题