一、文件读写

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篇】的更多相关文章

  1. Python爬虫笔记安装篇

    目录 爬虫三步 请求库 Requests:阻塞式请求库 Requests是什么 Requests安装 selenium:浏览器自动化测试 selenium安装 PhantomJS:隐藏浏览器窗口 Ph ...

  2. Python爬虫番外篇之Cookie和Session

    关于cookie和session估计很多程序员面试的时候都会被问到,这两个概念在写web以及爬虫中都会涉及,并且两者可能很多人直接回答也不好说的特别清楚,所以整理这样一篇文章,也帮助自己加深理解 什么 ...

  3. Python爬虫番外篇之关于登录

    常见的登录方式有以下两种: 查看登录页面,csrf,cookie;授权:cookie 直接发送post请求,获取cookie 上面只是简单的描述,下面是详细的针对两种登录方式的时候爬虫的处理方法 第一 ...

  4. Python爬虫【实战篇】scrapy 框架爬取某招聘网存入mongodb

    创建项目 scrapy startproject zhaoping 创建爬虫 cd zhaoping scrapy genspider hr zhaopingwang.com 目录结构 items.p ...

  5. Python爬虫【实战篇】百度翻译

    先看代码 import requests headers = { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS ...

  6. python爬虫入门---第一篇:获取某一网页所有超链接

    这是一个通过使用requests和BeautifulSoup库,简单爬取网站的所有超链接的小爬虫.有任何问题欢迎留言讨论. import requests from bs4 import Beauti ...

  7. python爬虫番外篇(一)进程,线程的初步了解

    一.进程 程序并不能单独和运行只有将程序装载到内存中,系统为他分配资源才能运行,而这种执行的程序就称之为进程.程序和进程的区别在于:程序是指令的集合,它是进程的静态描述文本:进程是程序的一次执行活动, ...

  8. Python爬虫【实战篇】获取网易云歌词

    先看代码 import requests import json headers = { "User-Agent": "Mozilla/5.0 (iPhone; CPU ...

  9. Python爬虫【实战篇】bilibili视频弹幕提取

    两个重要点 1.获取弹幕的url是以 .xml 结尾 2.弹幕url的所需参数在视频url响应的 javascript 中 先看代码 import requests from lxml import ...

  10. python爬虫【实战篇】模拟登录人人网

    requests 提供了一个叫做session类,来实现客户端和服务端的会话保持 使用方法 1.实例化一个session对象 2.让session发送get或者post请求 session = req ...

随机推荐

  1. js模拟支付宝发送短信验证码&&&&短信倒计时

    html <div class="pwdContent"> <div class="pwdBox"></div> <d ...

  2. Spring Cloud和Dubbo的对比

  3. NET SignaiR 实现消息的推送,并使用Push.js实现通知

    一.使用背景 1. SignalR是什么? ASP.NET SignalR 是为 ASP.NET 开发人员提供的一个库,可以简化开发人员将实时 Web 功能添加到应用程序的过程.实时 Web 功能是指 ...

  4. iOS视频通话方案

    现在iPhone4平台上实时音视频对话已取得初步成果.其间查阅了很多资料,感谢这些信息的提供者.继往开来,我写下此文.我只列出要点,具体编码以及平台移植各位自己去努力吧.照着下面的步骤,您一定能做出来 ...

  5. 笔试算法题(15):-1到N中包含1的数字的个数 & 连续和为N的序列

    出题:输入一个整数N,求从1到N这N个整数的十进制表示中‘1’出现的次数: 分析: 从左向右处理string表示的数字:当前数字长度为n,判断最左边一位数字字符: 如果是0,则直接递归下一位: 如果是 ...

  6. linux core dump 生成和调试

    core dump 某些信号的产生会导致产生core dump,包含了进程终止时的内存镜像.在某些时候这个core文件就非常的有用处,配合gdb或者lldb调试起来非常方便. 更详细的文档参考 Lin ...

  7. js 小练习

    js 学习之路代码记录 js 加载时间线 1.创建Document对象,开始解析web页面.解析HTML元素和他们的文本内容后添加Element对象和Text节点到文档中.这个阶段document.r ...

  8. 一个关于vue+mysql+express的全栈项目(一)

    最近学了mysql数据库,寻思着能不能构思一个小的全栈项目,思来想去,于是就有了下面的项目: 先上几张效果图吧       目前暂时前端只有这几个页面,后端开发方面,有登录,注册,完善用户信息,获取用 ...

  9. W3C Blog: HTML-下一步是什么?

    HTML5.1 草稿版: 地址:https://www.w3.org/TR/html51/introduction.html#a-quick-introduction-to-html 2016年3月0 ...

  10. 【ZJOI2017 Round1练习&BZOJ4773】D3T1 cycle(最小负环,倍增)

    题意:给定一个带权有向图,求点数最小的负环. 2 ⩽ n ⩽ 3000 ⩽ m ⩽ n(n - 1)1 ⩽ ui,vi ⩽ nabs(w[j])<= 10^4 思路:倍增思想 设d[i,j,k] ...