优达学城(Udacity)深度学习笔记-1.Python&os学习

欢迎使用Markdown编辑器写博客

Python对于文件操作非常方便,很大一部分是因为os这个库,在做优达城深度学习作业的时候里面有一堆os,各种列表推导式混合os.path,一下就绕晕了。这里做点笔记,方便自己学习&复习。

我的目录
如上图,我当前目录是/home/mao/tensorflow-master/tensorflow/examples/udacity

在我当前目录下有
这里写图片描述

1.os.path.exists('notMNIST_large')
返回True

2.os.stat('notMNIST_large.tar.gz')
返回的答案是posix.stat_result(st_mode=33270, st_ino=1448325, st_dev=2049, st_nlink=1, st_uid=1000, st_gid=1000, st_size=247336696, st_atime=1484708728, st_mtime=1484663203, st_ctime=1484708728)其中st_size是该文件的大小,单位是Byte

3.os.path.splitext('notMNIST_large.tar.gz')
返回的是('notMNIST_large.tar', '.gz')

4.os.path.join('notMNIST_large', 'A')
返回的是 ‘notMNIST_large/A’

5.os.listdir('notMNIST_large')
返回的是该路径下所有文件名字
['I',
'E.pickle',
'B',
'A.pickle',
'G',
'D.pickle',
'J',
'F',
'E',
'G.pickle',
'J.pickle',
'C',
'D',
'H.pickle',
'B.pickle',
'I.pickle',
'A',
'C.pickle',
'H',
'F.pickle']

6.来个列表推导式和os混合起来的爽一爽

root = os.path.splitext(os.path.splitext('notMNIST_large')[0])[0]
[os.path.join(root, d) for d in sorted(os.listdir(root)) if os.path.isdir(os.path.join(root, d))]

分析一下:首先是 这个root的答案是notMNIST_large,因为内层的splitext[0]的结果是notMNIST_large.tar,然后外层的splitext[0]的结果是notMNIST

接着我们看列表推导式这里:
先看for d in sorted(os.listdir(root)),这个的结果是把notMNIST_large下面的所有文件文件夹按照顺序排列好赋给d。
答案是

A
A.pickle
B
B.pickle
C
C.pickle
D
D.pickle
E
E.pickle
F
F.pickle
G
G.pickle
H
H.pickle
I
I.pickle
J
J.pickle

然后看我们的if约束条件 ,说的是if os.path.isdir(os.path.join(root,d)),最内层os.path.join(root,d)的结果是 notMNIST/A notMNIST/A.pickle …… 然后os.path.isdir()来判断这些是不是dir,是的话对应位置就是true,否则就是false。

所以这个列表推导式for 后面的结果就是A B ……J,最终这个列表推导式的结果就是notMNIST/A , notMNIST/B ……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值