1、os模块的使用:
-----创建文件夹:
(1)判断是否存在picture文件夹,有的话不动,没有的话创建
target_dir = r'D:/picture'
if os.path.exists(target_dir):
if not os.path.isdir(target_dir):
os.remove(target_dir)
else:
os.mkdir(target_dir)
(2)创建文件夹和文件名
# 在D盘中创建文件夹和文件夹名
path = 'D:'
filename = 'pictures'
# 没有not时,创建文件夹。加not为存在文件夹时,继续存入。---if not...
os.path.isdir(path) # 判断指定路径是否存在且是一个目录
os.mkdir(os.path.join(path, filemane)) #创建建单层目录,如果该目录已存在则抛出异常,若但用os.mkdir('hahha'),则创建一个叫哈哈哈的文件
# os用法汇总
"""
os对象方法:
os.getcwd() #返回当前工作目录
os.chdir(path) #改变工作目录
os.listdir(path=".") #列举指定目录中的文件名("."表示当前目录,“..”表示上一级目录)
os.mkdir(path) #创建建单层目录,如果该目录已存在则抛出异常
os.makedirs(path) #递归创建多层目录,如该目录已存在抛出异常,
os.remove(path) #删除文件
os.rmdir(path) #删除单层目录,如该目录非空则抛出异常
os.removedirs(path) #递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空则抛出异常
os.rename(old,new) #将文件old重命名为new
os.system(command) #运行系统shell命令
os.walk(top) #遍历top路径以下所有子目录,返回一个三元组:(路径,[包含目录],[包含文件])
os.curdir #属性,表示当前目录
os.pardir #属性,表示上一级目录
os.sep #属性,输出操作系统特定的路径分隔符(win下为'\\',Linux下为'/')
os.linesep #属性,当前平台使用的行终止符(Win下为‘\r\n’,Linux下为'\n')
os.name #属性,指待当前使用的操作系统
os.path对象方法:
os.path.basename(path) #去掉目录路径,单独返回文件名
os.path.dirname(path) #去掉文件名,单独返回目录路径
os.path.join(path1[,],path2[,...]) #将path1,path2各部分组成一个路径名
os.path.split(path) #分割文件名和路径,返回一个(f_path,f_name)元组,如果完全使用目录,它也会将最后一个目录作为文件名分离
os.path.splitext(path) #分离文件名和后缀名,返回(f_name,f_extension)元组,如果完全使用目录,它也会将最后一个目录作为文件名分离
os.path.getsize(file) #返回指定文件的尺寸,单位是字节
os.path.getatime(file) #返回指定文件最近的访问时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
os.path.getctime(file) #返回指定文件的创建时间
os.path.getmtime(file) #返回指定文件最新的修改时间
os.path.exists(path) #判断指定路径是否存在(目录或者文件)
os.path.isabs(path) #判断是否为绝对路径
os.path.isdir(path) #判断指定路径是否存在且是一个目录
os.path.isfile(path) #判断指定路径是否存在且是一个文件
os.path.islink(path) #判断指定路径是否存在且是一个符号链接
os.path.ismount(path) #判断指定路径是否存在且是一个挂载点
os.path.samefile(path1,path2) #判断path1,path2是否指向同一个文件
"""
2、使用urllib进行解码操作
在网站网址中经常会有中文解码后的如 '%E8%94%A1%E5%90%9B%E5%A6%82' (百分号+两个十六进制数)
-----将中文解码为url编码格式的方法:
import urllib
from urllib import request
a = '哈哈哈'
b = urllib.request.quote(a)
# >>>b
# >>>'%E5%93%88%E5%93%88%E6%98%AF'
c = urllib.request.unquote(b)
# >>>c
# >>>'哈哈哈'
有时需要注意不同浏览器的编码问题(如百度为gbk,谷歌为utf-8)
----处理方法如下:
import sys,urllib
from urllib import request
s = '丽江'
urllib.quote(s.decode(sys.stdin.encoding).encode('gbk'))
# >>>'%C0%F6%BD%AD'
urllib.quote(s.decode(sys.stdin.encoding).encode('utf8'))
# >>>'%E4%B8%BD%E6%B1%9F'
3、re模块进行筛选
import re
import requests
url = 'www.baidu.com'
response = requests.get(url)
html = response.text
# 寻找"objURL":"和",中间的所有字符
img_urls = re.findall(r'"objURL":"(.*?)",',html)
4、下载,保存文件
resp.text返回的是Unicode型的数据。
resp.content返回的是bytes型也就是二进制的数据。
也就是说,如果你想取文本,可以通过r.text。
如果想取图片,文件,则可以通过r.content。
(resp.json()返回的是json格式数据)
如下载并保存一张图片:
import requests
jpg_url = 'http://img2.niutuku.com/1312/0804/0804-niutuku.com-27840.jpg'
content = requests.get(jpg_url).content
with open('demo.jpg', 'wb') as fp:
fp.write(content)
将字符串保存为txt:
path = r'D:/station.txt'
# 用a模式
with open (path,'a') as f:
f.write(i)
f.close()