python 文件的基本处理

一、文件的打开

 文件打开方法: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模块操作文件
  常用操作方法:
 
  
  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)  返回路径的文件名
 
 

你可能感兴趣的:(Python)