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打开文件后为什么要关闭 ?
- 将写缓存同步到磁盘;
- linux系统中每个进程打开的文件个数是有限的;
- 如果打开文件数到了系统限制,在打开文件就会失败
使用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权限 |