37

ファイルがバケットに存在するかどうかを確認し、存在しない場合は作成するスクリプトがあります。

os.path.exists(file_path)whereを使用してfile_path = "/gs/testbucket"みましたが、ファイルが見つからないというエラーが発生しました。

files.listdir()API 関数を使用して、パスにあるすべてのファイルを一覧表示し、必要なファイルがそれらの 1 つであるかどうかを確認できることを知っています。しかし、ファイルが存在するかどうかを確認する別の方法があるかどうか疑問に思っていました。

4

13 に答える 13

1

カスタム関数(以下に表示)を使用して、ファイルが存在するかどうかを確認できます

def is_file_available(filepath):
 #check if the file is available
 fileavability = 'yes';
 try: 
  fp = files.open(filepath, 'r')
  fp.close()
 except Exception,e:
  fileavability = 'no'
 return fileavability 
上記の関数を次のように使用します
 filepath = '/gs/test/testme.txt'
 fileavability = is_file_available(filepath)

注:上記の関数では、ファイルを読み取ろうとしているアプリケーションに読み取り許可が与えられていない場合、「no」という結果になることもあります。

于 2013-01-03T07:49:09.373 に答える
1

パスを指定してファイルが存在するかどうかを直接確認する機能はないと思います。
API 関数を使用files.listdir()してバケット内のすべてのファイルを一覧表示し、必要なファイル名と照合する関数を作成しました。見つかった場合は true、そうでない場合は false を返します。

于 2012-11-30T11:58:36.707 に答える
0

google.cloud インポート ストレージから

def if_file_exists(name:str,bucket_name:str):
    storage_client = storage.Client()
    bucket = storage_client.bucket(bucket_name)
    stats = storage.Blob.from_string(f"gs://{bucket_name}/{name}").exists(storage_client)
    return stats

print(if_file_exists('audios/courses/ActivityPlaying/1320210506130438.wav',GC_BUCKET_NAME),">>>")

name args はファイルの残りのパスです

if_file_exists 関数は 2 つの位置引数を取り、1 つ目はオブジェクト キー、2 つ目はバケット名で、ファイルが存在する場合は true を返し、それ以外の場合は false を返します。

于 2021-05-11T06:52:05.977 に答える