直接贴到colab中可用
先加载硬盘,my_drive 是为了操作回收站
#@title 加载Google云端硬盘
#@markdown 登两次
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth,drive
from oauth2client.client import GoogleCredentials
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
my_drive = GoogleDrive(gauth)
drive.mount('/content/drive')
定时删除文件,同时清空掉colab回收站,预留空间,防硬盘暴掉
#@title 定时删除文件
import time
import os
from threading import Timer
# 要监控的目录
path = "/content/drive/XXXXX/XXX" #@param {type:"string"}
# 刚超2G时开始删除
max_size = 2 * 1024 * 1024 * 1024
def delete_old_files():
total_size = 0
files = []
for filename in os.listdir(path):
file = os.path.join(path, filename)
files.append(file)
total_size += os.path.getsize(file)
if total_size > max_size:
# 获取最早的文件
oldest_file = min(files, key=os.path.getctime)
# 删除文件
os.remove(oldest_file)
print(f"Deleted {oldest_file} to reduce storage usage.")
delete_old_files()#循环查
def my_delete():
delete_old_files()
time.sleep(5)
for a_file in my_drive.ListFile({'q': "trashed = true"}).GetList():
# print the name of the file being deleted.
print(a_file['title'],"删除")
# delete the file permanently.
a_file.Delete()
Timer(5*60, my_delete).start() # 每五分钟运行一次代码
my_delete()
参考
CPython: How to remove the file from trash in drive in colab
Slack Claude