嗨,我想知道ADLS Gen 2中文件的存在
file_client = service_client.get_file_client(file_system='filelayer', file_path='my_file.txt')
这提供了file_client,但是如何检查文件是否存在,因为试图重命名它并给出错误为(如果不存在):
(SourcePathNotFound) The source path for a rename operation does not exist
所以我只想在文件存在的情况下重命名file_client.rename_file(target_name)
。
答案 0 :(得分:0)
没有file_exists,但是您可以使用get_file_properties()
def exists(file_client: DataLakeFileClient):
try:
file_client.get_file_properties()
return True
except ResourceNotFoundError:
return False
file_client = service_client.get_file_client(file_system='filelayer', file_path='my_file.txt')
if exists(file_client):
file_client.rename_file(targetName)
但是,一些人(包括我在内)考虑了直接解决问题的pythonic方法:
file_client = service_client.get_file_client(file_system='filelayer', file_path='my_file.txt')
try:
file_client.rename(target_name)
except ResourceNotFoundError:
# log that the files does not exist or not, up to you
pass
``
答案 1 :(得分:-1)
尝试/满足您的需求是否足够? 您可以将get_file_client放入try中,如果找不到,则会捕获SourcePathNotFound异常。