簡體   English   中英

如何使用 azure ZC1C425Z574E68385D1CAB1 編輯 azure blob 存儲中的 *.csv 文件

[英]How to edit a *.csv file in the azure blob storage with an azure function?

我目前正在使用 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"
}

初始化.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)

我的 function 在文件夾中選擇一個文件,然后將其復制到同一個文件夾中,並在末尾添加一個“-copy”。 有沒有一種簡單的方法可以訪問數據並使用 python 對其進行編輯?

Toll 現在我嘗試使用包 'csv'、'io' 和 'fileinput' 來讀取信息,但直到現在我都無法在我的 VisualStudioCode 中編輯甚至查看數據。

如果您需要更多信息,請告訴我。

最佳P

事實上,沒有辦法“編輯”.csv 文件。 但是您可以下載 .csv 文件並對其進行更改,然后上傳以覆蓋 azure 上的 .csv 文件。

順便說一句,如果我沒看錯,你的 function 有一個大問題。 當 azure function 被觸發時,您的容器中將有無窮無盡的 'xx-Copy' 文件。 我的意思是 output 文件將是您的 function 的觸發條件,而 function 將是無窮無盡的。

這是我的 function,它使用 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 數據讀取為字節,然后將其轉換為字符串。 讓我知道這是否可以解決您的問題。:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM