前面已经学习了怎么下载图片以及怎么下载多张图片,这仅仅是冰山一角,后面我们下载的图片会比这些多得多,所以我希望我下载的图片能分门别类的保存,我不喜欢一打开我的主目录就被一大堆图片刷屏,所以,我需要在程序中创建文件夹来保存我下载的图片 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')
这只是最简单的功能,我们要做的要比这个复杂一些 极视界网站上的图片是按相册来存放的,所以为了能更加有序整齐的存放图片,我们需要以相册的名字来存放文件夹 这就要求我们先在极视界首页的网页源码中获取相册的名字,并且以这个名字来创建文件夹 这里还是重复前面所做的事情,但是为了加深印象,最好还是自己再走一遍流程 最终实现的代码是这样的 #!/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
|