一次从谷歌驱动器中删除 80K 图像

问题描述 投票:0回答:3

我不小心在我的主要谷歌驱动器文件夹MyDrive中解压缩了一个包含 80K 图片的文件夹。现在我正试图删除这些文件。我在这个 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 之间)。我必须手动卸载、重新启动运行时并再次装载以获取下一批要删除的图像。手动执行此操作将花费大量时间。有没有办法一次全部删除?

python python-3.x google-drive-api google-colaboratory
3个回答
0
投票

我对 Colab 和 Python 不是很熟悉,根据你的描述,你想删除这些文件,但你必须自己重新挂载才能获得下一批文件。

所以我的想法是让remount这一步变成自动的

这是我为这项工作修改的代码。

from google.colab import drive
import os
import glob

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

它没有经过测试,但它应该自动执行重新安装部分(如果不需要重新启动运行时步骤,它可能会起作用)。

祝你好运。


0
投票

不要使用

glob
,使用
os
listdir()

import os
fileList = os.listdir()
for some_file in fileList:
    if some_file.endswith('.png'):
        try:
            os.remove(some_file)
            #del some_file
        except:
            print("Error while deleting file : ", some_file)

当我运行这段代码时:

import glob
fileList = glob.glob('/content/drive/My Drive/Colab Notebooks/')
print("Number of files: ",len(fileList))

输出:

Number of files:  1

虽然这段代码:

import os
fileList = os.listdir() # '/content/drive/My Drive/Colab Notebooks/'
print("Number of files: ",len(fileList))

输出:

Number of files:  210

或者也许您只是使用了错误的文件路径?默认文件路径是或应该是

'/content/drive/My Drive/Colab Notebooks/'
你可以设置:

%cd '/content/drive/My Drive/Colab Notebooks/'

0
投票

只需运行 bash 命令,即可避免所有并发症。

!rm -r  **.png

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

!rm -rv  **.png

© www.soinside.com 2019 - 2024. All rights reserved.