python-3.x 从谷歌驱动器一次删除80K图像

iszxjhcz  于 2023-05-02  发布在  Python
关注(0)|答案(2)|浏览(85)

我不小心解压了一个文件夹与80 K的图像在我的主要谷歌驱动器文件夹MyDrive。现在我正试图删除这些文件。我在这个link上找到了一个解决方案,我使用了以下代码:

import os
import glob

fileList = glob.glob('/content/drive/MyDrive/*.png')
print("Number of files: ",len(fileList))

for filePath in fileList:
    try:
        os.remove(filePath)
    except:
        print("Error while deleting file : ", filePath)

这里的问题是,安装的驱动器一次只显示和删除几个图像(在1000-1500之间)。我必须手动卸载,重新启动运行时并再次挂载,以获取下一批要删除的映像。手动执行此操作将花费大量时间。有没有办法一次全部删除?

eyh26e7m

eyh26e7m1#

我对Colab和Python不是很熟悉,根据你的描述,你想删除这些文件,但你必须重新挂载自己才能获得下一批文件。
所以我的想法是使重装步骤成为自动。
下面是我为这个作业修改的代码。

from google.colab import drive
import os
import glob
import time

attempts = 0
while(True):
  if attempts == 0:
    drive.mount('/content/drive', force_remount=True)
  if os.path.isdir("/content/drive"):
    fileList = glob.glob('/content/drive/MyDrive/*.png')
    if len(fileList) > 0:
      attempts = 0
      print("Number of files: ", len(fileList))
      for filePath in fileList:
        try:
          os.remove(filePath)
        except:
          print("Error while deleting file : ", filePath)
    else:
      if attempts < 3:
        print("No files left, retrying in 3 seconds...")
        attempts = attempts + 1
        time.sleep(3)
      else:
        print("No files left, stopping")
        break

它没有经过测试,但它应该会自动执行重新挂载部分(如果不需要重新启动运行时步骤,它可能会工作)。
祝你好运

pgky5nke

pgky5nke2#

只需运行bash命令,以避免所有复杂性。

!rm -r  **.png

这将删除所有png文件。如果你想实时查看哪些文件正在被删除,只需添加-v即可。

!rm -rv  **.png

相关问题