programing

Google Colab에서 여러 파일 또는 전체 폴더를 다운로드하려면 어떻게 해야 합니까?

stoneblock 2023. 5. 24. 21:39

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 드라이브에 폴더로 업로드하려면 어떻게 해야 합니까?

zip 파일을 만들었습니다.

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

제가 그 zip 파일을 다운받아서요.

from google.colab import files
files.download("/content/file.zip")

예를 들어 로그 폴더를 다운로드해야 하는 경우:

!zip -r log.zip log/

-r재귀를 나타냄

하는 동안에log.zip대상 zip 파일이며log/소스 폴더 경로입니다.

여기에 이미지 설명 입력

결과:

!zip -r ./myresultingzippedfolderwithallthefiles.zip ./myoriginalfolderwithallthefiles/

콜라브에서 일했습니다.

여기서.홈 디렉토리 또는 원본 디렉토리가 될 수 있습니다.myoriginalfolderwithallthefiles장소와 장소myresultingzippedfolderwithallthefiles.zip생성됩니다.필요에 따라 디렉토리를 변경합니다.

!zip -r /content/sample_data.zip /content/sample_data
# change sample_data.zip to your desired download name Ex: nothing.zip
# change sample_data to your desired download folder name Ex: ner_data 

여기에 이미지 설명 입력

저의 경우, 저는 노트북이 구축한 각 모델의 h5 파일(대학 프로젝트 제출용)이 포함된 전체 폴더를 다운로드해야 했습니다.이 폴더를 다운로드하는 가장 쉬운 방법은 폴더에 있는 모든 파일을 같은 폴더 트리의 "내 드라이브" 폴더로 끌어다 놓는 입니다.

업로드할 드라이브 폴더 및 폴더가 강조 표시됩니다.

분명히 저는 나중에 구글 드라이브에서 폴더를 다운로드했습니다.

코드를 사용하여 폴더를 압축하고 다운로드할 수 있습니다.files.

#@title Utility to zip and download a directory
#@markdown Use this method to zip and download a directory. For ex. a TB logs 
#@markdown directory or a checkpoint(s) directory.

from google.colab import files
import os

dir_to_zip = 'dir_name' #@param {type: "string"}
output_filename = 'file.zip' #@param {type: "string"}
delete_dir_after_download = "No"  #@param ['Yes', 'No']

os.system( "zip -r {} {}".format( output_filename , dir_to_zip ) )

if delete_dir_after_download == "Yes":
    os.system( "rm -r {}".format( dir_to_zip ) )

files.download( output_filename )

이 코드를 셀에 복사하고 filename 및 folders_or_files_ 필드 2개를_save로 변경합니다.모든 폴더 또는 파일을 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)

사용하다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 보관 파일을 만들고 확장하는 방법을 검색하십시오.

다운로드할 폴더의 복사 경로를 사용합니다.그러면:

from google.colab import files
files.download("path")
  1. 드라이브와 Colab 노트북이 모두 개인용인 경우:

    • 드라이브 장착,
    • 폴더 경로를 이동한 후 파일 이름 앞에 있는 "..."를 클릭하고 파일/폴더 경로를 사용합니다.
  2. 마운트되지 않은 특수 폴더를 다운로드하려면 드라이브:

    • 폴더의 zip 파일 만들기(단일 파일의 경우 zip이 필요 없음)

    • b)!gdown --id zip_file_id 'like this id 1ZxqBjXlF0H6.....'

    • file_id의 경우

      1 ------- 압축된 파일의 링크 가져오기 또는 공유 사용 --- 2 ----- 파일 공유 링크의 ID 부분 -----

여기에 이미지 설명 입력

언급URL : https://stackoverflow.com/questions/50453428/how-do-i-download-multiple-files-or-an-entire-folder-from-google-colab