一、文件读写

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

最新文章

  1. oracle函数案例以及分页案例
  2. 用Charles抓取https接口数据
  3. 数据注解和验证 – ASP.NET MVC 4 系列
  4. AsyncTask和Handler对比(转)
  5. Flex 4中组件背景设置(填充方式)group为例子
  6. [译]Atomic VS. Non-Atomic 操作
  7. Android Bluetooth Stack: Bluedroid(五岁以下儿童):The analysis of A2DP Source
  8. SugarSync的API总结
  9. Java语言跨平台原理
  10. php定时执行操作及ob_flush()与flush()的使用
  11. 我的 FPGA 学习历程(11)—— 实验:按键消抖
  12. JS 设计模式二 -- 单例模式
  13. Hibernate入门(一)
  14. Drying [POJ3104] [二分答案]
  15. 使用Bootstrap Popover实现一个弹框上三角形的代码记录
  16. springmvc访问静态资源的springmvc.xml配置
  17. 如何用js创建表格?
  18. “全栈2019”Java第一百零六章:匿名内部类与抽象类接口注意事项
  19. Oracle入门第三天(上)——多表查询与分组函数
  20. 【转】Hibernate 原汁原味的四种抓取策略

热门文章

  1. MySQL系列(一)--数据类型
  2. ubuntu apt-update NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
  3. KBE_运作流程
  4. linux下硬盘分区、格式化以及文件管理系统
  5. Linux 搭建 squid 代理服务器 三种模式
  6. this关键字的由来及使用
  7. 九度oj 题目1052:找x
  8. 鳥哥的 Linux 私房菜
  9. HDU1024 多段最大和 DP
  10. hdu 5073 推公式相邻质心转换