前面已经学习了怎么下载图片以及怎么下载多张图片,这仅仅只是一个开始,后面我们下载的图片会比这些多得多,所以我希望我下载的图片能分门别类的保存,我不喜欢一打开我的主目录就被一大堆图片刷屏,所以,我需要在程序中创建文件夹来保存我下载的图片
python中对文件,对目录的操作有很多种,但是我们现在用不到这么多,我们现在要做的仅仅是使用python来创建一个文件夹,这里给大家一个网址,包含了大部分的文件操作,有兴趣可以看一下:
http://www.runoob.com/python/python-files-io.html其实不看也没什么问题,我们使用到的只是其中的 mkdir 方法而已
在python中,我们使用os模块的mkdir()方法创建一个新的目录
先来看看函数原型,还是help命令 help(os.mkdir)
我们可以看到,mkdir 有两个参数
1. path 新目录的路径+名称
2. mode 是该目录的权限
其中 [ ] 括起来的是可选的参数,默认为0777
我们来看看怎么创建一个目录
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
__author__ = '217小月月坑'
# os是系统库,引入这个库可以使用系统的命令
import os
# 在当前目录下创建文件,haha是目录名
os.mkdir('haha')
# 在指定的目录下创建文件,r''使字符转义,hehe是目录名
os.mkdir(r'/home/ym/hehe')
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
__author__ = '217小月月坑'
# os是系统库,引入这个库可以使用系统的命令
import os
# 在当前目录下创建文件,haha是目录名
os.mkdir('haha')
# 在指定的目录下创建文件,r''使字符转义,hehe是目录名
os.mkdir(r'/home/ym/hehe')
这只是最简单的功能,我们要做的要比这个复杂一些
极视界网站上的图片是按相册来存放的,所以为了能更加有序整齐的存放图片,我们需要以相册的名字来存放文件夹
这就要求我们先在极视界首页的网页源码中获取相册的名字,并且以这个名字来创建文件夹
这里还是重复前面所做的事情,分析源码加入RE,但是为了加深印象,最好还是自己再走一遍流程
最终实现的代码是这样的
#!/uer/bin/env python
# -*- coding: UTF-8 -*-
__author__ = '217小月月坑'
'''
获取网页源码中的相册名字并用这个名字创建文件夹
'''
import urllib2
import re
import os
url = 'http://product.yesky.com/more/506001_31372_photograph_1.shtml'
user_agent = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:40.0) Gecko/20100101 Firefox/40.0'
headers = {'User-Agent':user_agent}
try:
request = urllib2.Request(url,headers=headers)
response = urllib2.urlopen(request)
conents = response.read().decode("gbk")
# RE获取相册首页和相册名字
pattern = re.compile(r'<dt><a href="(.*?)" title="(.*?)"',re.S)
items = re.findall(pattern,conents)
for item in items:
print item[0],item[1]
# 设置文件夹的路径,作为参数传给mkdir函数使用,item[1]是相册名字
path = r'/home/ym/test/'+item[1]
# 创建文件夹
os.mkdir(path)
except urllib2.URLError,e:
if hasattr(e,"code"):
print e.code
if hasattr(e,"reason"):
print e.reason
#!/uer/bin/env python
# -*- coding: UTF-8 -*-
__author__ = '217小月月坑'
'''
获取网页源码中的相册名字并用这个名字创建文件夹
'''
import urllib2
import re
import os
url = 'http://product.yesky.com/more/506001_31372_photograph_1.shtml'
user_agent = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:40.0) Gecko/20100101 Firefox/40.0'
headers = {'User-Agent':user_agent}
try:
request = urllib2.Request(url,headers=headers)
response = urllib2.urlopen(request)
conents = response.read().decode("gbk")
# RE获取相册首页和相册名字
pattern = re.compile(r'<dt><a href="(.*?)" title="(.*?)"',re.S)
items = re.findall(pattern,conents)
for item in items:
print item[0],item[1]
# 设置文件夹的路径,作为参数传给mkdir函数使用,item[1]是相册名字
path = r'/home/ym/test/'+item[1]
# 创建文件夹
os.mkdir(path)
except urllib2.URLError,e:
if hasattr(e,"code"):
print e.code
if hasattr(e,"reason"):
print e.reason