赞
踩
Python中存在很多常用文件操作内置函数:open()、read()、write()、tell()、seek()、close()等,本文章主要对上述常用函数的使用进行详细说明及代码示例展示。
在python中使用内置函数open()来打开文件,并返回一个文件对象。其中打开文件时,open()函数提供了不同的打开方式(即文件模式)来指定文件的读写方式。
以下是一些常用的文件打开方式。
'r':以文本模式打开文件进行只读操作。
'rb':以二进制模式打开文件进行只读操作。
- file = open("filename.txt", "r") # 以只读模式打开文本文件
- file = open("filename.bin", "rb") # 以只读模式打开二进制文件
'w':以文本模式打开文件进行写入操作。如果文件不存在,则创建新文件。如果文件已存在,则会清空文件内容。
'wb':以二进制模式打开文件进行写入操作。
- file = open("filename.txt", "w") # 以写入模式打开文本文件
- file = open("filename.bin", "wb") # 以写入模式打开二进制文件
'a':以文本模式打开文件进行追加操作。如果文件不存在,则创建新文件。
'ab':以二进制模式打开文件进行追加操作。
- file = open("filename.txt", "a") # 以追加模式打开文本文件
- file = open("filename.bin", "ab") # 以追加模式打开二进制文件
'r+':以文本模式打开文件进行读写操作。
'rb+':以二进制模式打开文件进行读写操作。
- file = open("filename.txt", "r+") # 以读写模式打开文本文件
- file = open("filename.bin", "rb+") # 以读写模式打开二进制文件
在打开文件后,记得使用close()方法来关闭文件。
另外,还有一种更推荐的方式是使用with语句来自动管理文件的打开和关闭,这样可以更安全和方便地处理文件操作。
- with open("filename.txt", "r") as file:
- content = file.read() # 在这里进行文件操作
- print(content)
- # 文件会在这里自动关闭,无需手动调用close()
使用with语句可以确保在文件操作完成后,无论是否发生异常,文件都会被正确关闭。
使用文件对象的read()、readline()或readlines()方法来读取文件内容。
content = file.read(size)
size(可选):表示要读取的最大字节数。如果省略该参数,或者指定为负数或零,则read()函数会尝试一次性读取整个文件内容。readline()或readlines()参数同理
示例:
- content = file.read() # 读取整个文件内容
- content = file.read(10) # 读取10个字节
- line = file.readline() # 读取一行内容
- lines = file.readlines() # 读取所有行并返回一个列表
需要注意的是,read()函数返回的是一个字符串(或字节串,如果以二进制模式打开文件的话),其中包含了所读取的内容。如果读取到文件末尾,read()函数会返回一个空字符串(或空字节串)。因此,你可以使用条件语句来检查是否读取到了文件末尾。
#在下面示例中,如果读取到内容,则打印内容;否则,打印"End of file"。
- file = open("filename.txt", "r")
- content = file.read(10)
- if content:
- print(content)
- else:
- print("End of file")
- file.close()
使用文件对象的write()方法来写内容到文件中。
在 Python 中,文件对象的 write 操作默认会立即写入文件,而不会像 C 语言中那样缓冲数据。因此,不需要显式调用类似于C语言中的 fflush 的函数来刷新文件缓冲区。
file.write("Hello, World!") # 写入内容到文件,且立马写入
在完成文件操作后,记得使用文件对象的close()方法关闭文件。
file.close() # 关闭文件
使用tell()和seek()方法来控制文件的读写位置。
tell()方法用于返回文件当前的读写位置,以字节为单位。它可以告诉你文件指针当前所在的位置。
- file = open("filename.txt", "r")
- position = file.tell() # 获取当前的读写位置
- print("Current position:", position)
- file.close()
seek()方法用于将文件的读写位置移动到指定的位置。它接受两个参数:offset表示偏移量,whence表示参考位置。whence参数可选,默认为0,表示从文件开头计算位置;1表示从当前位置计算位置;2表示从文件末尾计算位置。
- file = open("filename.txt", "r")
- file.seek(5) # 将读写位置移动到第 5 个字节处
- content = file.read() # 从第 5 个字节处开始读取文件内容
- print(content)
- file.close()
在上述示例中,我们首先使用tell()方法获取了当前的读写位置,然后使用seek()方法将读写位置移动到第5个字节处,然后使用read()方法读取从第5个字节处开始的文件内容。
tell()和seek()函数对于在文件中定位和处理特定位置的数据非常有用。可以根据需要使用seek()方法来移动读写位置,并使用tell()方法获取当前的读写位置。这样就可以在文件中进行灵活的读写操作。
除了上述基本的文件操作函数外,还有其他一些常用的文件操作函数和模块,如下所示:
os 模块:提供了许多文件和目录操作的功能,例如创建目录、删除文件等。
- import os
-
- os.mkdir("directory") # 创建目录
- os.remove("filename.txt") # 删除文件
shutil 模块:提供了高级的文件操作功能,例如移动文件、复制文件等。
- import shutil
-
- shutil.move("sourcefile.txt", "destination/") # 移动文件
- shutil.copy("sourcefile.txt", "destination/") # 复制文件
os.path 模块:提供了一些关于路径操作的函数,例如获取文件名、获取文件扩展名等。
- import os.path
-
- filename = os.path.basename("path/to/filename.txt") # 获取文件名
- extension = os.path.splitext("filename.txt")[1] # 获取文件扩展名
总结,以上是对常用文件操作函数的使用介绍及代码示例。通过以上函数可以完成大部分的文件操作的相关内容开发工作。
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。