python爬虫【第1篇】
一、文件读写
1.打开文件
# 以读文件模式代开new.txt
f=open(r"c:\new.txt",“r”)
f=open("c:\new.txt",“r”)
常见文件读取模式:‘r’-读模式;‘w’-写模式;‘a’-追加模式;‘b’-二进制模式;‘+’-读/写模式
更多文件读取模式:http://www.runoob.com/python/python-files-io.html
file对象的属性:
file.closed 返回true如果文件已被关闭,否则返回false。
file.mode 返回被打开文件的访问模式。
file.name 返回文件的名称。
file.softspace 如果用print输出后,必须跟一个空格符,则返回false。否则返回true
详见实例:
#!/usr/bin/python
# -*- coding: UTF-8 -*- # 打开一个文件
fo = open("foo.txt", "w")
print "文件名: ", fo.name
print "是否已关闭 : ", fo.closed
print "访问模式 : ", fo.mode
print "末尾是否强制加空格 : ", fo.softspace 返回结果如下:
文件名: foo.txt
是否已关闭 : False
访问模式 : w
末尾是否强制加空格 : 0
2.文件读取
①.file.read([size]) size未指定则返回整个文件,如果文件大小>2倍内存则有问题.f.read()读到文件尾时返回""(空字串) ②.file.readline() 返回一行 ③.file.readlines([size]) 返回包含size行的列表,size 未指定则返回全部行 ④.for line in f:
print line #通过迭代器访问
3.文件写入
f.write("hello\n") #如果要写入字符串以外的数据,先将他转换为字符串.
4.文件关闭
f.close() 关闭文件
5.更多file对象方法:
f.tell() 返回一个整数,表示当前文件指针的位置(就是到文件头的比特数). f.seek(偏移量,[起始位置]) 用来移动文件指针. 偏移量:单位:比特,可正可负
起始位置:0-文件头,默认值;1-当前位置;2-文件尾
省略写法:
with open(‘C:new.txt’,‘r’) as f:
f.write()
二、文件及目录操作方法
os.getcwd() # 获取当前python脚本工作目录路径
os.listdir(path) # 返回指定目录下的所有文件及目录名
os.remove(filepath) # 删除1个文件
os.removedirs(r"d:\python") #删除多个空目录
os.path。isfile(filepath) #检验路径是否是一个文件
os.path.isdir(filepath) #检验路径是否是一个目录
os.path.isabs() #判断是否为绝对路径
os.path.exists() #检验路径是否存在
os.path.split() #分离一个路径的目录名和文件名,如:
os.path.split(r"/home/new.txt")
返回结果为:(‘/home’,‘new.txt’) os.path.splitext() #分离扩展名,如:
os.path.splitext(r"/home/new.txt")
返回结果为:(‘/home/new’,'.txt') os.path.dirname(filepath) #获取路径名
os.path.basename(filepath) #获取文件名
os.rename(old,new) #重命名文件或目录
os.makedirs(r"c:|python、test") #创建多级目录
os.makedir("test") #创建单个目录
os.path.getsize(filename) #获取文件大小
shutil.copytree('olddir','newdir') #复制文件夹
shutil.copyfile('oldfile','newfile') #复制文件
shuti.move('oldpos','newpos') #移动文件
os.rmdir('dir') #删除空目录
三、序列化
序列化:把内存中的变量编程可存储或可传输的过程。
反序列化:把变量内容从序列化的对象重新读取到内存的过程。
Python中有2个模块,可实现序列化,即:cPickle、pickle,前者效率较高
1.dumps()方法
功能:将任意对象序列化成一个str,然后将这个str写入文件进行保存。 import pickle d = dict(url = ‘index.html’,title = ‘首页’,content = ‘首页’)
pickle。dumps(d)
2.dump()方法
功能:将序列化后的文件直接写入文件 f = open(r'D:\new.txt',‘wb’)
pickle.dump(d,f)
f.close()
3.loads()与load()方法
loads()功能:将str反序列化为对象
load()功能:将文件直接反序列化为对象 f = open(r'D:\new.txt','rb')
d = pickle.load(f)
f.cloese
python爬虫【第1篇】的更多相关文章
- Python爬虫笔记安装篇
目录 爬虫三步 请求库 Requests:阻塞式请求库 Requests是什么 Requests安装 selenium:浏览器自动化测试 selenium安装 PhantomJS:隐藏浏览器窗口 Ph ...
- Python爬虫番外篇之Cookie和Session
关于cookie和session估计很多程序员面试的时候都会被问到,这两个概念在写web以及爬虫中都会涉及,并且两者可能很多人直接回答也不好说的特别清楚,所以整理这样一篇文章,也帮助自己加深理解 什么 ...
- Python爬虫番外篇之关于登录
常见的登录方式有以下两种: 查看登录页面,csrf,cookie;授权:cookie 直接发送post请求,获取cookie 上面只是简单的描述,下面是详细的针对两种登录方式的时候爬虫的处理方法 第一 ...
- Python爬虫【实战篇】scrapy 框架爬取某招聘网存入mongodb
创建项目 scrapy startproject zhaoping 创建爬虫 cd zhaoping scrapy genspider hr zhaopingwang.com 目录结构 items.p ...
- Python爬虫【实战篇】百度翻译
先看代码 import requests headers = { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS ...
- python爬虫入门---第一篇:获取某一网页所有超链接
这是一个通过使用requests和BeautifulSoup库,简单爬取网站的所有超链接的小爬虫.有任何问题欢迎留言讨论. import requests from bs4 import Beauti ...
- python爬虫番外篇(一)进程,线程的初步了解
一.进程 程序并不能单独和运行只有将程序装载到内存中,系统为他分配资源才能运行,而这种执行的程序就称之为进程.程序和进程的区别在于:程序是指令的集合,它是进程的静态描述文本:进程是程序的一次执行活动, ...
- Python爬虫【实战篇】获取网易云歌词
先看代码 import requests import json headers = { "User-Agent": "Mozilla/5.0 (iPhone; CPU ...
- Python爬虫【实战篇】bilibili视频弹幕提取
两个重要点 1.获取弹幕的url是以 .xml 结尾 2.弹幕url的所需参数在视频url响应的 javascript 中 先看代码 import requests from lxml import ...
- python爬虫【实战篇】模拟登录人人网
requests 提供了一个叫做session类,来实现客户端和服务端的会话保持 使用方法 1.实例化一个session对象 2.让session发送get或者post请求 session = req ...
随机推荐
- 微信小程序---账号注册与开发工具
(1)申请帐号 进入小程序注册页 根据指引填写信息和提交相应的资料,就可以拥有自己的小程序帐号. 在这个小程序管理平台,你可以管理你的小程序的权限,查看数据报表,发布小程序等操作. 登录 小程序后台 ...
- iOS缓存到内存
前面一片文章介绍了如何上传和下载文件,这篇文章将介绍一下如何在iOS设备中进行缓存. 这篇文章将只介绍一下将内容缓存到内存中,下一篇文章就介绍一下在iOS磁盘上缓存内容. 使用缓存的目的是为了使用的应 ...
- 【讲●解】火车进出栈类问题 & 卡特兰数应用
火车进出栈类问题详讲 & 卡特兰数应用 引题:火车进出栈问题 [题目大意] 给定 \(1\)~\(N\) 这\(N\)个整数和一个大小无限的栈,每个数都要进栈并出栈一次.如果进栈的顺序为 \( ...
- python 语法之 装饰器decorator
装饰器 decorator 或者称为包装器,是对函数的一种包装. 它能使函数的功能得到扩充,而同时不用修改函数本身的代码. 它能够增加函数执行前.执行后的行为,而不需对调用函数的代码做任何改变. 下面 ...
- BZOJ 4519 不同的最小割 最小割树
题面: 把每两个点当成源汇,求N*(N-1)个最小割中不同的有多少个 N<=850 分析: 有这样一个结论:一张无向图不同的最小割最多有n-1个. 那么我们一定可以建出一棵树,使得这棵树中每两个 ...
- EZOJ 宝石迷阵 建图+网络流匹配
题面: 封印恶魔的地方可以看作是一个 n*m 的矩形,包含了 n*m 个祭坛,并且其 中有一些祭坛已经损坏了. 如果 i+j 为偶数,那么第 i 行第 j 列的祭坛只要没有损坏,就一定会封印有一个恶魔 ...
- python 安装模块 更新模块
#显示模块pip list #显示过期模块pip list --outdated #安装模块pip install xxx #升级模块pip install --upgrade xxx
- Python之粘包
Python之粘包 让我们基于tcp先制作一个远程执行命令的程序(1:执行错误命令 2:执行ls 3:执行ifconfig) 注意注意注意: res=subprocess.Popen(cmd.deco ...
- 97-2016年11月1日AUDUSD在公布利率后反手做单感悟(2016.11.2)
2016年11月1日AUDUSD在公布利率后反手做单感悟 11月1日,澳联储公布利率决议,保持利率不变,AUDUSD大涨.我在上面做空认为市场会回调.做空位置是根据多种斐波那契技术找的 ...
- Spring Boot 2(一):【重磅】Spring Boot 2.0权威发布
就在今天Spring Boot2.0.0.RELEASE正式发布,今天早上在发布Spring Boot2.0的时候还出现一个小插曲,将Spring Boot2.0同步到Maven仓库的时候出现了错误, ...