我不小心在我的主要谷歌驱动器文件夹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 之间)。我必须手动卸载、重新启动运行时并再次装载以获取下一批要删除的图像。手动执行此操作将花费大量时间。有没有办法一次全部删除?
我对 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
它没有经过测试,但它应该自动执行重新安装部分(如果不需要重新启动运行时步骤,它可能会起作用)。
祝你好运。
不要使用
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/'