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权限 |