创建文件对象
文件对象名 = open('文件名','打开方式',缓冲区)
缓冲区指定了读写文件的缓冲模式,0表示不缓存,1表示缓存,大于1表示缓存区的大小。默认为缓存模式。对文件内容操作完成之后,一定要关闭文件,可使用文件对象名.close()
关闭文件,也可用关键字 with 自动管理资源,在代码块执行完毕后自动还原进入该代码块时的现场,用法:with open('文件名','打开方式') as 文件对象名:
。
文件打开模式
模式 说明 r 读模式 w 写模式 a 追加模式 b 二进制模式(可与其他模式组合) + 读、写模式(可与其它模式组合)
文件对象常用方法
方法 说明 flush() 把缓冲区的内容写入文件,但不关闭文件 close() 把缓冲区的内容写入文件,同时关闭文件,并释放文件对象 read([size]) 从文件中读取size个字节(Python2.x)或字符(Python3.x)的内容作为结果返回,省略size表示一次性读取所有内容 readline() 从文本文件读取一行内容作为结果返回 readlines() 把文本文件中的每行文本作为一个字符串存入列表中,并返回该列表 seek(offset[,whence]) 把文件指针移动到新的位置,offset表示相对于whence的位置。whence为0表示从头开始计算;whence为1表示从当前位置开始计算;whence为2表示从文件尾开始计算。whence默认为0 tell() 返回文件指针当前位置 truncate([size]) 删除从当前指针位置到文件末尾的内容。若指定了size,则只留下前size个字节,其余删除 write(s) 把字符串s的内容写入文件 writelines(s) 把字符串列表写入文本文件,不添加换行符
二进制文件操作
pickle模块
'''写'''
import pickle
doc = open ( 'samplefile.dat' , 'wb' )
Lis = [ 'a' , 1 , 'b' , 2 , 'c' , 3 ]
Dic = { 'a' : 1 , 'b' : 2 , 'c' : 3 }
try :
pickle. dump( Lis, doc)
pickle. dump( Dic, doc)
except :
print ( 'Opps!!!Write Error!' )
finally :
doc. close( )
'''读'''
import pickle
doc = open ( 'samplefile.dat' , 'rb' )
while 1 :
try :
print ( pickle. load( doc) )
except :
break
doc. close( )
struct模块
'''写'''
import struct
doc = open ( 'samplefile.dat' , 'wb' )
S = struct. pack( 'i?' , 678 , True )
C = 'String'
doc. write( S)
doc. write( C. encode( ) )
doc. close( )
'''读'''
import struct
doc = open ( 'samplefile.dat' , 'rb' )
S = doc. read( 5 )
print ( struct. unpack( 'i?' , S) )
C = doc. read( 6 )
C = C. decode( )
print ( C)
文件级操作
os与os.path模块
os模块提供了操作系统功能和反访问文件系统的简便方法,以及大量文件级操作的方法。os.path提供了大量用于路径判断、切分、连接以及文件夹遍历的方法。
os模块常用文件操作方法
方法 说明 access(path,mode) 按照mode指定的权限访问文件 open(path,flags,mode = 0o777,*,dir_fd = None) 按照mode指定的权限打开文件,默认权限为可读、可写、可执行 chmod(path,mode,*,dir_fd = None,follow_symlinks = True) 改变文件的访问权限 remove(path) 删除指定的文件 rename(src,dst) 重命名文件或目录 stat(path) 返回文件的所有属性 fstat(path) 返回打开的文件的所有属性 listdir(path) 返回path目录下的文件和目录列表 startfile(filepath[,opeation]) 使用关联的应用程序打开指定文件
os.path模块常用文件操作方法
方法 说明 abspath(path) 返回绝对路径 dirname(p) 返回目录路径 exists(path) 判断文件是否存在 getatime(filename) 返回文件的最后访问时间 getctime(filename) 返回文件的创建时间 getmtime(filename) 返回文件的最后修改时间 getsize(filename) 返回文件的大小 isabs(path) 判断path是否为绝对路径 isdir(path) 判断path是否为目录 isfile(path) 判断path是否为文件 join(path,* paths) 连接两个或多个path split(path) 对路径进行分割,以列表形式返回 splitext(path) 从路径中分割文件的扩展名 splitdrive(path) 从路径中分割路径的名称
os模块常用目录操作方法与成员
方法 说明 mkdir(path[,mode = 0777]) 创建目录 makedirs(path1/path2…,mode = 511) 创建多级目录 rmdir(path) 删除目录 removedirs(path1/path2…) 删除多级目录 listdir(path) 返回指定目录下的文件和目录信息 getcwd() 返回当前工作目录 get_exec_path() 返回可执行文件的搜索路径 chdir(path) 把path设为当前工作目录 walk(top,topdown = True,onerror = None) 遍历目录树,该方法返回一个元组,包括3个元素:所有路径名,所有目录列表,文件列表 sep 当前操作系统所用的路径分隔符 extsep 当前操作系统所用的文件扩展名分隔符
== ---------------------------------------------------------华丽的分割线---------------------------------------------------------==