python - 如何使用 azure 函数编辑 azure blob 存储中的 *.csv 文件?

标签 python azure visual-studio-code azure-functions azure-data-factory

我目前正在使用 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 中编辑甚至查看数据。

如果您需要更多信息,请告诉我。

最佳

最佳答案

事实上,无法“编辑”.csv 文件。但您可以下载 .csv 文件并进行更改,然后上传以覆盖 azure 上的 .csv 文件。

顺便说一句,如果我没看错的话,你的函数有一个大问题。当azure功能被触发时,您的容器中将有无穷无尽的“xx-Copy”文件。我的意思是输出文件将是你的函数的触发条件,并且函数将是无穷无尽的。

这是我的函数,它使用 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 数据读取为字节,然后将其转换为字符串。让我知道这是否可以解决您的问题。:)

关于python - 如何使用 azure 函数编辑 azure blob 存储中的 *.csv 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62815723/

相关文章:

exception - 身份验证失败 Azure 表存储

terminal - 在 Mac 上的 Visual Studio Code 中更改默认终端应用

azure - 我可以将 MSDeploy 参数传递给 Azure Web App MSDeploy 扩展吗?

.net - 有没有办法通过Graph API来统计合法持有的数据?

python - 无法修改现有逻辑来解析下一页的标题

python - 如何在不指定绝对路径的情况下使用 PIL.ImageFont.truetype 加载字体文件?

visual-studio-code - 在 VS Code 中删除特定的 Intellisense 建议

visual-studio-code - 如何更改VSCODE中括号之间的缩进指导线颜色?

python - 在 Amazon Linux 2 上安装 AWS CDK

python - 两只随机行走的 turtle 的无限循环