Python os.open() 方法



Python 方法 os.open() 打开指定的文件并返回相应的文件描述符。它还允许我们为文件设置各种标志和模式。请始终记住默认模式为 0o0777(八进制),它将文件权限设置为由所有人读取、写入和执行。

语法

以下是 Python os.open() 方法的语法 -


 os.open(file, flags, mode, *, dir_fd);

参数

Python os.open() 方法接受以下参数 -

  • file − 要打开的文件名。
  • flags − 以下常量是标志的选项。可以使用按位 OR 运算符 (|) 将它们组合在一起。其中一些并非在所有平台上都可用。
    • os.O_RDONLY - 仅对读取开放
    • os.O_WRONLY - 仅对写入开放
    • os.O_RDWR - 开放用于读取和写入
    • os.O_NONBLOCK - 打开时不阻止
    • os.O_APPEND − 在每次写入时附加
    • os.O_CREAT − 如果文件不存在,则创建文件
    • os.O_TRUNC − 截断大小为 0
    • os.O_EXCL − 如果存在 create 和 file 时出错
    • os.O_SHLOCK - 原子获取共享锁
    • os.O_EXLOCK - 原子获取排他锁
    • os.O_DIRECT - 消除或减少缓存效果
    • os.O_FSYNC − 同步写入
    • os.O_NOFOLLOW − 不要遵循符号链接
  • mode − 其工作方式与 chmod() 方法类似。
  • dir_fd − 此参数表示引用目录的文件描述符。

返回值

Python os.open() 方法返回新打开的文件的文件描述符。

以下示例显示了 open() 方法的用法。在这里,我们通过提供只读访问权限打开一个名为“newFile.txt”的文件。


import os, sys

# Open a file
fd = os.open( "newFile.txt", os.O_RDONLY )

# Now read this file from the beginning
os.lseek(fd, 0, 0)
str = os.read(fd, 100)
print ("File contains the following string:", str)

# Close opened file
os.close( fd )
print ("File closed successfully!!")

上面的代码将打开一个文件并读取该文件的内容 -

File contains the following string: b'qikepu'
File closed successfully!!

在以下示例中,我们将打开具有读取和写入访问权限的文件。如果指定的文件不存在,open() 方法将创建一个同名的文件。


import os, sys

# Open a file
fd = os.open( "newFile.txt", os.O_RDWR|os.O_CREAT )

# Write one string
os.write(fd, b"This is qikepu")

# Now read this file from the beginning
os.lseek(fd, 0, 0)
str = os.read(fd, 100)
print ("File contains the following string:")
print(str)

# Close opened file
os.close( fd )
print ("File closed successfully!!")

在执行上述代码时,它将打印以下结果 -

File contains the following string:
b'This is qikepu'
File closed successfully!!