open跟os.open的区别

2020年9月30日 / 5次阅读 / Last Modified 2020年9月30日
os模块

open是builtin函数,返回文件对象,此对象自带读写接口。os.open是low-level接口,返回文件描述符(file descriptor),读写要使用os.read或os.write接口。

>>> f=open('pet.py')
>>> f
<_io.TextIOWrapper name='pet.py' mode='r' encoding='UTF-8'>
>>> f.close()

而os.open的接口较为复杂:

import os, sys

# 打开文件
fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )

# 写入字符串
os.write(fd, "This is test")

# 关闭文件
os.close( fd )

flags – 该参数可以是以下选项,多个使用 “|” 隔开:

os.O_RDONLY: 以只读的方式打开
os.O_WRONLY: 以只写的方式打开
os.O_RDWR : 以读写的方式打开
os.O_NONBLOCK: 打开时不阻塞
os.O_APPEND: 以追加的方式打开
os.O_CREAT: 创建并打开一个新文件
os.O_TRUNC: 打开一个文件并截断它的长度为零(必须有写权限)
os.O_EXCL: 如果指定的文件存在,返回错误
os.O_SHLOCK: 自动获取共享锁
os.O_EXLOCK: 自动获取独立锁
os.O_DIRECT: 消除或减少缓存效果
os.O_FSYNC : 同步写入
os.O_NOFOLLOW: 不追踪软链接

-- EOF --

本文链接:https://www.pynote.net/archives/2512

留言区

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top