【问题标题】:How do I download multiple files or an entire folder from Google Colab?如何从 Google Colab 下载多个文件或整个文件夹?
【发布时间】:2018-10-31 09:08:11
【问题描述】:

目前,我可以使用命令将文件作为单个文件下载

files.download(file_name)

我还尝试使用以下代码 sn-p 将它们上传到驱动器,但它正在将它们作为单独的文件上传。

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

如何将多个文件作为文件夹下载到本地计算机?或者如何将这些文件作为文件夹上传到我的谷歌驱动器?

【问题讨论】:

    标签: python-3.x google-colaboratory


    【解决方案1】:

    我创建了一个 zip 文件:

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

    比我下载的那个 zip 文件:

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

    【讨论】:

    • 我将此答案标记为解决方案。它完全适合我。谢谢
    • 另外值得注意的是,如果您在files.download()上下载大文件时遇到问题,您也可以点击左上角的人字形图标,浏览@987654324下的所有文件@标签并手动下载文件。
    • 如果你问:“file.zip 在哪里?”您可以在 Colab Notebook 左侧窗格的底部找到它。然后你可以通过右键单击它来下载它。
    • 我的文件名在 python 中。 . .你如何将我的 python 代码翻译成那种格式
    • 对我来说,由于某种原因它停留在files.download(.zip size ~2mb),但我可以通过Files手动下载它。
    【解决方案2】:

    例如,如果你必须下载日志文件夹:

    !zip -r log.zip log/

    -r代表递归

    log.zip 是目标 zip 文件并且 log/ 是源文件夹路径

    【讨论】:

    • 这个答案比接受的答案更清楚。
    【解决方案3】:

    我发现:

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

    在 colab 为我工作。

    这里的. 可以是您的主目录,也可以是您原来的myoriginalfolderwithallthefiles 所在的目录以及将创建myresultingzippedfolderwithallthefiles.zip 的目录。根据需要更改目录。

    【讨论】:

      【解决方案4】:

      您可以使用代码压缩文件夹并使用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 )
      

      【讨论】:

      • 如果您没有文件夹,并且所有文件都在 Colab 的主目录中,则可以使用dir_to_zip = '/content' #@param {type: "string"} 获取上述代码。这是 Colab 的主目录。
      • 另一个问题:如何选择几个文件进行压缩?我所有的文件都在主目录上,我只需要压缩其中的 4 个。我怎样才能专门压缩那些?
      【解决方案5】:

      将此代码复制到一个单元格中,并更改两个字段文件名和文件夹_or_files_to_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)
      

      【讨论】:

        【解决方案6】:

        使用tar 将目录中的文件组合成一个文件。

        例如,这里有一个 sn-p,它创建一个目录、其中的 3 个文件和一个包含该组的 .tar 存档:

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

        在这种情况下,要下载的文件是 demo.tar。有关更多提示,请搜索创建和扩展 tar 存档。

        【讨论】:

          【解决方案7】:

          就我而言,我必须下载一个包含我的笔记本构建的每个模型的 h5 文件(用于提交大学项目)的整个文件夹。我发现下载此文件夹以及文件夹中所有文件的最简单方法是将文件夹拖放到同一文件夹树中的“我的云端硬盘”文件夹中。

          显然我后来从 Google Drive 下载了该文件夹。

          【讨论】:

            猜你喜欢
            • 2018-07-21
            • 1970-01-01
            • 2019-06-20
            • 1970-01-01
            • 2021-10-25
            • 1970-01-01
            • 1970-01-01
            • 2017-05-18
            • 2017-03-06
            相关资源
            最近更新 更多