[英]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.