Python核心数据类型——文件

1.  文件的一般格式

myFile = open(文件名,处理模式,输出缓存)

  • 处理模式为可选,默认为'r'。处理模式有'a':追加模式,追加模式属于写模式,不可读;'r':只读模式;'w':只写模式,删除文件已有内容后,开始写。
  • f = open('data.txt', 'r+'),表示可读可写,多种操作模式用'+'连接。
  • f = open('data.txt', 'a'),表示在文件尾部追加内容打开文件。
  • 输出缓存为可选,可传入0,表示无输出缓存,也就是执行write方法后直接传给文件。
  • file是open的同义词,也就是可以写成myFile = file(文件名,处理模式,输出缓存)

2.  常用方法

s = myFile.read()             #把整个文件读到一个字符串中

s = myFile.read(N)         #读取N个字节到一个字符串

s = myFile.readline()       #读取一行到一个字符串(包括行末指示符'\n')

sList = myFile.readlines()#读取整个文件到字符串列表,一行一个字符串

myFile.write(s)               #写入字符串到文件

myFile.writelines(sList)   #把列表中所有字符串写入文件

myFile.seek(N)              #修改文件位置到偏移N处

 

3.  文件的输入输出

当执行read或write时,文件指针都会往后移动,当同时为可读可写模式时,则共享同一个文件指针。

f.read(1)    #文件指针移到偏移1
f.read(1)    #再执行一次f.read(1)后,文件指针移到偏移2

f.read(1)    #文件指针移到偏移1
f.write('x')   #'x'插入到偏移1处,文件指针移到偏移2

  

 

  • 从文件读取的数据回到脚本中时是一个字符串,如果需要的话,需要手动转换文件格式,如字符串到数字。
  • 当把数据写入文件时,python不会自动把对象转换成字符串,如输出数字时,需要先将数字转换成字符串。
  • Python标准库pickle模块能够让我们直接在文件中储存Python对象,而不需要在字符串间转换数据类型。
 
import pickle

pickle.dump(D, F)#往文件F中写入对象D

E = pickle.load(F)#从文件F中读取对象到E

 

  • struct模块能够构造并解析打包的二进制数据
  • eval(s)#eval方法能够将字符串当作可执行的代码,换句话说就是把字符串转换成Python代码(Python是边解释边执行的)
posted @ 2011-11-27 17:12  NaN-Hax  阅读(1175)  评论(0编辑  收藏  举报