python - 为什么我不能从 databricks 中的 azure blobstorage 容器中删除所有文件
问题描述
我想使用以下命令从 blobstorage 容器中删除所有文件:
dbutils.fs.rm
像这样指向一个特定文件可以正常工作:
dbutils.fs.rm("/mnt/inbox/InvLog.txt", True)
但我想删除容器的所有内容。我尝试了以下方法但没有成功:
dbutils.fs.rm("/mnt/inbox/*.txt", True)
dbutils.fs.rm("/mnt/inbox/", True)
dbutils.fs.rm("/mnt/inbox", True)
dbutils.fs.rm("/mnt/inbox/*.*", True)
有什么建议么?
更新:尝试了 ZF007 建议 %fs rm -r mnt/inbox 但它抛出错误:
java.lang.NullPointerException
解决方案
正如您在此处给出的示例中看到的,您可以dbutils.fs.rm("/mnt/inbox/InvLog.txt", True)
在单个文件方法中使用。
网页上的示例为您提供了以下单个文件:
dbutils.fs.rm("/foobar/baz.txt")
删除文件夹 foobar 下的文件是这样完成的:
%fs rm -r foobar
在你的情况下使用:
%fs rm -r mnt/inbox
请记住 linux、Windows 和 OSX 系统之间的文件夹注释差异。
更新:
您可以尝试以下非优雅的捷径解决方案来规避您声明的 java 异常:
import os
import ...snippet... # yours to fill in here what else you need to import.
files_processed = 0
files_path = [os.path.abspath(x) for x in os.listdir()]
print (files_path) # your filepath might need cleaning for it can be accepted. It prints here all found files.
for item in files_path:
if os.path.isfile(item) == True:
dbutils.fs.rm(item, True)
files_processed +=1
else:
print ('skipped folder: %s', item)
print ("job done", ' : ', file_processed)
推荐阅读
- python - 使用 errors='coerce' 在 pandas 中缺失值
- c# - 调用类后是否可以使用 get 属性清除对象?
- sql-server - SQL Server 分组填充月差
- reactjs - symfony 5 web 调试工具栏显示匿名并且在 onAuthenticationSuccess 后无法重定向
- excel - 如何使用变量范围跨工作表复制和粘贴?
- deep-learning - 重用pytorch模型时重复层
- blazor - 如何将 cshtml 与 _layout.razor 连接
- node.js - 从 git 子模块运行嵌套的 vscode launch.json
- sql - SQL INNER JOIN 机制
- spring - 分析未在 gradle 中发生