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