用Ubuntu,在谷歌云端运行Keras中的猫狗大战数据的时候,由于数据不在Keras中,需要另外下载数据,将其挂载到云端时路径遇到的问题.
首先 4/FwG4ZsLR6Wx_37zJAGSXqHvtnaFSaEhSKpy8O_rECWVmItDGxaQuZCU 网站详细讲解了如何在云端挂载文件,这个时候
第一部分完成以后,就是第一大段为每一个机子分配GPU,然后再利用语句(*# 挂载Google driver,指定Google Drive云端硬盘的根目录,名为drive !mkdir -p drive !google-drive-ocamlfuse drive)指定挂载的根目录为drive,这个时候notebook左边的files打开,会出现,三个文件夹,drive sample_data abc.json,代表挂载成功子啊云端,然后利用语句(# 指定当前的工作目录 # 此处为google drive中的文件路径,drive为之前指定的工作根目录,要加上 import os os.chdir("./drive")) 目的指定当前的工作路径在drive下面,以后的运行的时候路径都要在这个drive下面,(这里就是路径问题,这里要理解清楚,不然后面的路径会错), 然后为了查看当前的工作路径,正确在当前路径下建立文件夹(print(os.getcwd()) base_dir = './code1' os.makedirs(base_dir)) #python中对文件 / 文件夹的操作涉及到os模块和shutil模块 得到当前目录路径: os.getcwd() 返回指定目录path下的所有文件和目录名: os.listdir(path), 最后打印出来的当前路径为content/drive在drive路径下,然后在这个路径下建立一个需要用的文件夹,因为在当前路径下不用重新写content/drive路径,直接建立新名字的文件夹.(os.chdir(Path) 方法用于改变当前工作目录到指定的路径,path指要切换到的路径)。
代码中一开始使用的os.mkdir(path)一直报错,但是经过查询看到os.makedirs()的写法,突然感觉可能错误就在这里,结果一试发现,果不其然,以下为代码
第一次创建失败!
第二次创建成功!
os.mkdir()创建路径中的最后一级目录,即:只创建path_03目录,而如果之前的目录不存在并且也需要创建的话,就会报错。os.makedirs()创建多层目录,即:Test,path_01,path_02,path_03如果都不存在的话,会自动创建
os.path.join(path1[, path2[, ...]]) | 把目录和文件名合成一个路径 |
train -------> ‘//home//workspace//wanghao//Demo2//CVD/train’
类似于path.join()类似于字符串拼接功能,用来创建地址的路径 所以#os.mkdir(train_dir) 这句话去掉
import
os
BASE_DIR
=
os.path.dirname(__file__)
#获取当前文件夹的绝对路径
print
BASE_DIR
file_path
=
os.path.join(BASE_DIR,
'Test_Data'
)
#获取当前文件夹内的Test_Data文件(如果没有这个文件会自动创建)
Test_Data
=
open
(file_path,
"r"
)
#读取文件
for
line
in
Test_Data:
print
line
Test_Data.close()
#关闭文件