我在处理Colaboratory Notebook中的多个文件时遇到一些困难,该笔记本下载到我的Google驱动器的/ content目录中。到目前为止,我已经使用以下代码成功下载了kaggle数据集并将其提取到Colaboratory Notebook:
!kaggle datasets download -d iarunava/cell-images-for-detecting-malaria -p /content
!unzip \cell-images-for-detecting-malaria.zip
我还能够使用Pillow将数据集中的单个文件导入到我的Colaboratory会话中(我从提取过程中产生的输出中获取了文件名):
from PIL import Image
img = Image.open('cell_images/Uninfected/C96P57ThinF_IMG_20150824_105445_cell_139.png')
如何在不事先知道文件名称的情况下从/ content访问多个提取的文件?
谢谢!
答案 0 :(得分:1)
经过进一步的实验,我发现python os模块在Colab Notebook中的工作方式与在单台计算机上的类似。例如,在Colab Notebook中,命令
os.getcwd()
返回'/ content'作为输出。
此外,命令os.listdir()
返回我下载并提取的所有文件的名称。
答案 1 :(得分:0)
您可以使用 glob 。 glob.glob(pattern)
将匹配所有与模式匹配的文件。例如,下面的代码将读取.png
中的所有image_dir
文件。
png = glob.glob(os.path.join(img_dir, '*.png'))
png = np.array(png)
png
将包含文件名列表。
您可以使用:
png = glob.glob('cell_images/Uninfected/*.png')
png = np.array(png)