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权限 |
网友评论