在Python中,文件操作是基础且非常重要的功能之一。以下是关于Python中文件操作的一些基本知识:
打开文件
在Python中,使用open()
函数来打开一个文件。这个函数返回一个文件对象,可以用来进行后续的读写操作。
f = open('filename.txt', 'r') # 打开文件用于读取
open()
函数常用的参数有:
-
file
:文件路径。 -
mode
:打开文件的模式,如'r'
(读取)、'w'
(写入)、'a'
(追加)、'b'
(二进制模式)等。 -
encoding
:文件的编码格式,默认是UTF-8。
文件模式
以下是常用的文件打开模式:
-
'r'
:只读模式(默认)。 -
'w'
:写入模式,如果文件存在则覆盖,不存在则创建。 -
'x'
:独占创建模式,如果文件已存在则抛出异常。 -
'a'
:追加模式,如果文件存在则在文件末尾追加内容,不存在则创建。 -
'b'
:二进制模式。 -
't'
:文本模式(默认)。 -
'+'
:打开文件用于更新(读取和写入)。 -
'r+'
:文件可读写,如果文件不存在,会抛出异常;如果文件存在,会从当前位置开始写入新内容,通过seek函数可以改变当前的位置,也就是文本指针。 -
'w+'
:文件可读写,如果文件不存在,会创建一个新文件;如果文件存在,会清空整个文件,并写入新内容。 -
'a+'
:文件可读写,如果文件不存在,会创建一个新文件;如果文件存在,会将要写入的内容添加到原文件的最后,如果要使用read方法读取文件内容,调用seek(0)会直接将文件指针移到文件开始的位置。
读写文件
读取文件
f = open('filename.txt', 'r')
content = f.read() # 读取所有内容
print(content)
f.close() # 关闭文件
也可以使用readline()
来读取一行,或者readlines()
来读取所有行到一个列表中。
写入文件
f = open('filename.txt', 'w')
f.write('Hello, world!') # 写入字符串
f.close()
关闭文件
使用close()
方法来关闭文件。这是一个好习惯,因为它会释放文件资源。也可以使用with
语句来自动管理文件的打开和关闭。
with open('filename.txt', 'r') as f:
content = f.read()
print(content)
# 文件在with块结束时自动关闭
其他文件方法
-
f.tell()
:返回文件当前位置。 -
f.seek(offset, whence=0)
:改变文件当前位置。 -
f.flush()
:刷新内部缓冲区,将数据立刻写入文件。
文件操作是Python编程中非常常见的一部分,确保正确使用它们可以避免数据丢失和资源泄露。
writelines 方法是文件对象的一个方法,用于将一个字符串列表写入文件中,每个列表元素作为文件中的一行。
lines = ['First line\n', 'Second line\n', 'Third line\n']
with open('filename.txt', 'w') as f:
f.writelines(lines)
并没有writeline方法,写一行文本需要直接使用write方法。
with open('filename.txt', 'w') as f:
f.write('This is a single line\n')
fileinput模块中的input函数读取指定的文件。input方法返回一个FileInput对象,通过FileInput对象的相应方法可以对指定文件进行读取,FileInput对象使用的缓存机制,并不会一次性读取文件的素有内容,所以比readlines函数更节省内存资源。
import fileinput
for line in fileinput.input(['filename.txt']):
print(line, end='') # 默认情况下,line 包含换行符
网友评论