如何从已安装的云端硬盘文件夹中永久删除?

时间:2019-07-22 17:59:04

标签: python pytorch google-colaboratory shutil

我编写了一个脚本,可以在每次迭代后将我的模型和训练示例上载到Google Drive,以防发生崩溃或任何导致笔记本无法运行的情况,如下所示:

drive_path = 'drive/My Drive/Colab Notebooks/models/'
if path.exists(drive_path):
    shutil.rmtree(drive_path)
shutil.copytree('models', drive_path)

每当我检查自己的Google云端硬盘时,垃圾箱中的几十个已删除模型文件夹都会占用几GB,我必须手动将其删除。

google.colab.drive中唯一的功能似乎就是mount

根据this tutorialshutil.rmtree()会永久删除目录,但显然不适用于云端硬盘。

3 个答案:

答案 0 :(得分:1)

可以使用pydrive模块在​​Google Colab内部执行此操作。我建议您首先将不需要的文件和文件夹移动到“废纸rash”(通常是通过在代码中删除它们),然后在任何您认为有必要的时候(例如,要释放一些空间来减轻新DL项目的权重),通过编码以下行来清空垃圾箱。

要永久清空Google云端硬盘的垃圾箱,请在Google Colab笔记本中编写以下几行:

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials

auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
my_drive = GoogleDrive(gauth)

输入验证码并创建有效的GoogleDrive类实例后,输入:

for a_file in my_drive.ListFile({'q': "trashed = true"}).GetList():
    # print the name of the file being deleted.
    print(f'the file "{a_file['title']}", is about to get deleted permanently.')
    # delete the file permanently.
    a_file.Delete()

如果您不想使用我的建议,并希望永久删除云端硬盘中的特定文件夹,则可能需要进行更复杂的查询并处理fileIdparentId ,以及在查询Google Drive API时云端硬盘中的文件或文件夹可能有多个父文件夹的事实。

有关更多信息:

  • 您可以找到更复杂(但很典型)查询的示例here
  • 您可以找到 检查文件是否在特定文件夹中的示例 here
  • 通过阅读post,此声明可能会变得更好,更深入地理解 Google云端硬盘中的文件和文件夹每个都可以具有多个父文件夹 。 / li>

答案 1 :(得分:0)

只需将其移入垃圾桶并连接到驱动器。从那里永久删除笔记本。

答案 2 :(得分:0)

文件在删除时将移动到bin中,因此,这种巧妙的技巧可将文件大小在删除之前减小为0(无法撤消!)

EnterNames
相关问题