我正在尝试从azure blob容器下载图像,但每个图像都在一个文件夹中,所以我必须执行以下操作才能下载它们
result = block_blob_service.list_blobs('image')
`for blob in result:
if "/" in "{}".format(blob.name):
head, tail = os.path.split("{}".format(blob.name))
if (os.path.isdir("os.getcwd()"+ "/" + head)):
block_blob_service.get_blob_to_path('images',blob.name,
os.getcwd()+ "/" + head + "/" + tail)
else:
os.makedirs(os.getcwd()+ "/" + head, exist_ok=True)
block_blob_service.get_blob_to_path('images',blob.name,os.getcwd()+ "/" +
head + "/" + tail)`
现在我想针对csv文件过滤blob列表,然后下载图像,所以我尝试了以下但没有工作。
df = pd.read_csv("/content/image_i_want.csv")
`for blob in result:
if blob.name in df.values:
if "/" in "{}".format(blob.name):
head, tail = os.path.split("{}".format(blob.name))
if (os.path.isdir("os.getcwd()"+ "/" + head)):
block_blob_service.get_blob_to_path('images',os.getcwd()+ "/"
+ head + "/" + tail)
else:
os.makedirs(os.getcwd()+ "/" + head, exist_ok=True)
block_blob_service.get_blob_to_path('images',blob.name,
os.getcwd()+ "/" + head + "/" + tail)`
发布于 2019-05-29 09:23:02
可能因为给定的完整路径与csv中的路径不匹配。
另外,请尝试使用os.walk()
获取blob目录和文件名,这可能会让您的生活更轻松,而不是手动遍历树(因为您的解决方案似乎只能解决一个级别)。
https://stackoverflow.com/questions/-100006837
复制相似问题