Python中的文件描述符是什么?

Python中的文件描述符是什么?

Python中的文件描述符是标识符,表示在操作系统内核中打开的文件,并保存在文件表中。通常,它们具有非负值。负的结果表示错误或“没有值”情况。它们支持各种与文件相关的操作。总的来说,描述符是Python用于维护属性的特殊方法。

它们主要帮助访问文件和其他输入/输出设备,如网络套接字或管道。

这些操作在以下文件描述符所标识的I/O流上进行:-

更多Python相关文章,请阅读:Python 教程

close (fd)

文件描述符关闭。该函数必须与由open()或pipe()返回的文件描述符一起使用,因为它适用于低级I/O。使用popen(),fdopen()或内置函数open()返回的文件对象的close()方法来关闭文件。

示例

以下是close(fd)的示例:-

import os
file = "TutorialsPoint.txt"
file_Object = open(file, "r")
fd = file_Object.fileno()
print("%s的文件描述符是%s" % (file,fd))
os.close(fd)

输出

以下是上面代码的输出:-

TutorialsPoint.txt的文件描述符是3

dup (fd)

返回文件描述符fd的副本。

示例

以下是dup(fd)的示例:-

import os
file = "TutorialsPoint.txt"

#打开文件并获得文件描述符
fd = os.open(file, os.O_WRONLY)
print("文件描述符:", fd)

#复制文件描述符
dup_fd = os.dup(fd)
print("重复的文件描述符:", dup_fd)

#关闭文件描述符
os.close(fd)
os.close(dup_fd)
print("文件描述符已成功复制")

输出

以下是上面代码的输出:-

文件描述符:3
重复的文件描述符:4
文件描述符已成功复制

dup2(fd,fd2)

将文件描述符fd复制到fd2,必要时首先关闭第二个。

示例

以下是dup2(fd,fd2)的示例:-

import os
file = "TutorialsPoint.txt"

# opening the file and getting the file descriptor
fd = os.open(file, os.O_RDWR)
print("file descriptor:", fd)

# truncating the file
f = os.ftruncate(fd, 10)
print("File truncated successfully.")

# Closing the file descriptors
os.close(fd)

输出

以下是上述代码的输出 −

file descriptor: 3
File truncated successfully.

getcwd()

返回表示当前工作目录的字符串。

示例

以下是getcwd()的示例 –

import os

# Get the current working directory.
current_path = os.getcwd()
print("Current Directory Path:", current_path)

输出

以下是上述代码的输出 −

Current Directory Path: /home/user/
import os
file = "TutorialsPoint.txt"

# 打开文件,获得文件描述符
fd = os.open(file, os.O_RDWR)

# 打印原始文件的大小
print("文件的大小(以字节为单位)为:" , os.stat(fd).st_size)

# 要将文件截断到的字节数的长度
l = 5
os.ftruncate(fd, l)

# 打印文件的内容
size = os.stat(fd).st_size
print(os.read(fd, size).decode("utf-8"))

# 打印文件的大小(以字节为单位)
print("文件的大小(以字节为单位)为:" , os.stat(fd).st_size)

输出

以下是上述代码的输出

文件的大小(以字节为单位)为: 206
This
文件的大小(以字节为单位)为: 5

lseek( fd , pos , how )

将文件描述符 fd 的当前位置设置为位置 pos,由 how 修改:将位置设置为相对于文件开头;将其相对于当前位置设定;以及将其相对于文件结尾设定。

示例

以下是 lseek(fd,pos,how) 的示例

import os
file = "TutorialsPoint.txt"

# 打开文件,获得文件描述符
fd = os.open(file, os.O_RDWR|os.O_CREAT)

# 提供字符串
string = '欢迎来到教程点......谢谢!'

# 将字符串转换为字节数组
l = str.encode(string)

# 将字符串写入文件
os.write(fd,l)

# 从开头查找文件
os.lseek(fd,0,0)

# 读取文件
string = os.read(fd, 11)
print(string)
os.close(fd)

输出

以下是上述代码的输出

b'Welcome to '

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程