web-dev-qa-db-ja.com

Google Colabから複数のファイルまたはフォルダー全体をダウンロードするにはどうすればよいですか?

現在、コマンドを使用してファイルを個別のファイルとしてダウンロードできます

files.download(file_name)

また、以下のコードスニペットでドライブにアップロードしようとしましたが、個々のファイルとしてアップロードしています。

uploaded = drive.CreateFile({'title': file_name})
uploaded.SetContentString('Sample upload file content')
uploaded.Upload()
print('Uploaded file with ID {}'.format(uploaded.get('id')))

複数のファイルをフォルダーとしてローカルコンピューターにダウンロードするにはどうすればよいですか?または、これらのファイルをフォルダとしてGoogleドライブにアップロードするにはどうすればよいですか?

9
tetedp

Zipファイルを作成しました。

!Zip -r /content/file.Zip /content/Folder_To_Zip

そのZipファイルをダウンロードしたよりも:

from google.colab import files
files.download("/content/file.Zip")
18
Shashank Mishra

見つけた:

!Zip -r ./myresultingzippedfolderwithallthefiles.Zip ./myoriginalfolderwithallthefiles/

コラボで働いていました。

ここに .は、ホームディレクトリまたは元のmyoriginalfolderwithallthefilesがあり、myresultingzippedfolderwithallthefiles.Zipが作成されます。必要に応じてディレクトリを変更します。

1
Ivan

このコードをセルにコピーし、ファイル名とfolders_or_files_to_saveの2つのフィールドを変更します。すべてのフォルダーまたはファイルをzipファイルに圧縮し、Googleドライブに保存します

#@title save yo data to drive
filename = "kerasmodel" #@param {type:"string"}
folders_or_files_to_save = "keras_model.h5" #@param {type:"string"}
from google.colab import files
from google.colab import auth
from googleapiclient.http import MediaFileUpload
from googleapiclient.discovery import build

def save_file_to_drive(name, path):
    file_metadata = {
    'name': name,
    'mimeType': 'application/octet-stream'
    }

    media = MediaFileUpload(path, 
                  mimetype='application/octet-stream',
                  resumable=True)

    created = drive_service.files().create(body=file_metadata, media_body=media, fields='id').execute()

    print('File ID: {}'.format(created.get('id')))

    return created


extension_Zip = ".Zip"

Zip_file = filename + extension_Zip

# !rm -rf $Zip_file
!Zip -r $Zip_file {folders_or_files_to_save} # FOLDERS TO SAVE INTO Zip FILE

auth.authenticate_user()
drive_service = build('drive', 'v3')

destination_name = Zip_file
path_to_file = Zip_file
save_file_to_drive(destination_name, path_to_file)
0
skaem

tarを使用して、ディレクトリ内のファイルを単一のファイルにグループ化します。

たとえば、ディレクトリ、その中の3つのファイル、およびグループを含む.tarアーカイブを作成するスニペットは次のとおりです。

!mkdir demo
!echo a > demo/a
!echo b > demo/b
!echo c > demo/c
!tar -cvf demo.tar demo/

この場合、ダウンロードするファイルはdemo.tarになります。その他のヒントについては、tarアーカイブの作成と拡張を検索してください。

0
Bob Smith