Oct1a

Python文件处理

python文件打开方式

mode 说明 注意
r 只读方式打开 文件必须存在
w 只写方式打开 文件存在则清空内容,文件不存在则创建文件
a 追加方式打开 文件存在写入数据附加到文件尾部,文件不存在则创建文件
‘**r+’/‘w+**‘ 可读写方式打开 文件必须存在 / ‘w+’与’w’相似
‘**a+**’ 追加和读写方式打开
+‘b 二进制方式打开 如‘rb’,’wb’,’rb+’,’wb+’,’ab’,ab+

Python文件属性

class 说明 举例
name 输出文件名 file.name
fileno() 文件描述符(I/O底层_0,1,2,3) file.fileno()
mode 文件打开权限(‘r’,’w’..) file.mode
encoding 文件编码格式(‘utf-8’) file.encoding
closed 文件是否关闭(True,False) file.closed

python打开文件后为什么要关闭 ?

  1. 将写缓存同步到磁盘;
  2. linux系统中每个进程打开的文件个数是有限的;
  3. 如果打开文件数到了系统限制,在打开文件就会失败

使用OS模块对文件处理

class 说明 举例
os.read(fd,buffersize) 文件读取 os.read(‘test.txt’,20)
os.write(fd,string) 文件写入 os.write(‘test.txt’,”I Love Study”)
os.lseek(fd,pos,how) 文件指针操作 os.lseek(‘test.txt’,0,0)从开始位置读取
os.close(fd) 文件关闭 os.close(‘test.txt’)
os.open(fd,flag[,mode]) 文件打开 os.open(‘test.txt’,os.O_OCREAT \ os.O_RDWR)

使用OS模块来打开文件

os.open(flag) 打开文件方式
os.O_CREAT 创建文件
os.O_RDONLY 只读方式打开
os.O_WRONLY 只写方式打开
os.O_RDWR 读写方式打开

OS模块方法

OS方法 说明 举例
access(path,mode) 判断文件权限:F_OK,R_OK,W_OK,X_OK os.access(‘test.txt’,os.F_OK)
listdir(path) 返回当前目录列表 os.listdir(‘D:\Python’)
remove(path) 文件删除 os.remove(‘test.txt’)
rename(old,new) 文件重命名 os.rename(‘1.txt’,’2.txt’)
mkdir(path[,mode]) 创建目录 os.mkdir(‘test01’)
rmdir(path) 删除目录 os.rmdir(‘test01’)
makedirs(path[,mode]) 创建多级目录 os.mkdirs(‘D:/Python/test/01’)
removedirs(path) 删除多级目录 os.removedirs(D:/Python/test/01)

用户权限解读 -rw-rw-r–

–分组 数值计算 r:4 w:2 x:1 rwx = 4+2+1 = 7
第一组rw: 表示当前用户对该文件有读r写w的权限,但没有执行x权限
第二组rw: 表示当前用户组对该文件有读r写w的权限,但没有执行x权限
第三组r-: 表示其他用户对该文件有读r权限,但没有写w和执行x权限

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。