一、文件的打开
文件打开方法:open(name[,mode[buf]]) name:文件的路径 mode:打开方式 buf:缓冲buffering大小 mode 说明 注意 r 只读方式打开 文件必须存在 w 只写方式打开 文件不存在创建文件, 文件存在则清空文件内容 a 追加方式打开 文件不存在则创建文件
r+/w+ 读写方式打开 a+ 追加和读写方式打开 rb、wb、ab、rb+、wb+、ab+:二进制方式打开
示例:
# 只读方式
# f = open("hello.py")
# c = f.read()
# print c
# 读写方式
# f = open('1.txt','w')
# f.write("test write")
# f.close()
#追加方式打开
# f = open("hello.py",'a')
# f.write("print 'write test'")
# f.close()
二、文件的读取
文件的读取方式 read([size]):读取文件(读取size个字节,默认读取全部) readline([size]):读取一行 readlines([size]):读取完文件(实际最大为缓冲区的大小),返回每一行所组成的列表(不推荐) iter:使用迭代器进行文件读取
示例:
# 文件读取方式
# f = open("1.txt")
# c = f.read()
# c = f.readline()
# c = f.readline(2)
# c = f.readlines()
# print c
# 迭代器进行文件读取
# iter_f = iter(f)
# lines = 0
# for line in iter_f:
# lines += 1
#
# print lines
三、文件的写入与写缓存
文件的写入方式 write(str):将字符串写入文件 writelines(sequence_of_strings):写多行到文件示例:
# 文件的写入 与 写缓存
# f = open("test.txt",'w')
# f.writelines("123123123")
# f.writelines(('223','xczcxc','gfweqq'))
# f.flush() #把缓冲区的内容写入硬盘
# f.close()
注:
# 1、将写缓存同步到磁盘 # 2、linux系统中每个进程打开文件的个数是有限的 # 3、如果打开文件数到了系统限制,再打开文件就会失败
四、文件的指针操作
Python文件的指针操作 seek(offset[,whence]):移动文件指针 offset:偏移量 可以为负数 whence:偏移相对位置; Python文件指针定位方式 os.SEEK_SET:相对文件起始位置 os.SEEK_CUR:相对文件当前位置 os.SEEK_END:相对文件结尾位置
示例:
f = open("1.txt",'r+')
# f.tell() //当前文件的偏移
# f.read(3)
f.seek(-5,os.SEEK_END)
# f.read()
python 文件的属性 file.fileno() //文件描述符 file.mode:文件打开权限 file.encoding:文件编码格式 file.closed:文件是否关闭
常用操作方法:
os.open(filename,flag[,mode]):打开文件 flag:打开文件的方式 os.O_CREAT:创建文件 os.O_RDONLY:只读方式打开 os.O_WRONLY:只写方式打开 os.O_RDWR:读写方式打开 os.read(fd,buffersize):读取文件 os.write(fd,str):写入文件 os.lseek(fd,pos,how):文件指针操作 os.close(fd):关闭文件其他的操作方法:
access(path,mode) 判断该文件权限、F_OK存在,权限: R_OK(读) 、W_OK(写) 、X_OK(执行) listdir(path) 返回当前目录下所有文件组成列表 remove(path) 删除文件 rename(old,new) 修改文件名或者目录名 mkdir(path,[,mode]) 创建目录 makedirs(path,[,mode]) 创建多级目录 removedirs(path) 删除多级目录 rmdir(path) 删除目录(必须为空目录)
示例:
fd = os.open("hello.txt",os.O_CREAT|os.O_RDWR)
n = os.write(fd,"test write")
l = os.lseek(fd,0,os.SEEK_SET)
str = os.read(fd,5)
os.close(fd)
os.path模块方法介绍 exists(path) 当前路径是否存在 isdir(s) 是否是一个目录 isfile(path) 是否是一个文件 getsize(filename) 返回文件大小 dirname(p) 返回路径的目录 basename(p) 返回路径的文件名