Python函数open()的用法和实操技巧
Python的文件操作是很常见的,我们需要读取文件、写入文件、追加文件等,就需要用到open()函数。open()函数在Python中用于打开文件,并返回一个文件对象,可以用来对文件进行读写操作。下面详细讲解一下open()函数的用法和实操技巧。
一、函数参数
open()函数的参数比较多,主要有四个:
1、文件名(必需)
如:file = open('test.txt')
文件名可以是绝对路径或相对路径,如果是相对路径,则相对路径是以当前工作目录为基础的。打开文件时,Python会在内存中创建一个文件对象,以便调用文件操作方法。
2、模式(可选)
如:file = open('test.txt','r')
模式用于指定文件打开的模式,可选的模式有:
'r':读模式。文件指针将会放在文件的开头。如果文件不存在,会抛出IOError异常。
'w':写模式。文件指针将会放在文件的开头。如果文件不存在,会自动创建一个文件。
'a':追加模式。文件打开时文件指针将会放在文件的末尾。如果文件不存在,会自动创建一个文件。
'b':二进制模式。与其他模式结合使用。如rb或wb。
'+':读/写模式。与其他模式结合使用。如r+或w+。
如果省略模式参数,默认为'r'。
3、缓冲区(可选)
如:file = open('test.txt', 'r', buffering = -1)
缓冲区用于设置读写文件的缓冲方式,可选的缓冲区有:
0:无缓冲,直接读写。
1:行缓冲,每次写入一行。
>1:缓冲区大小。单位是字节,如缓冲区大小为1024,则每次读取或写入1024个字节。
-1:系统默认缓冲区大小。
如果省略缓冲区参数,则系统默认为缓冲区大小。
4、编码类型(可选)
如:file = open('test.txt', 'r', encoding = 'utf8')
编码类型用于指定文件编码格式,可选的编码格式有:
'utf8':UTF-8格式。
'gbk':GBK格式。
'gb2312':GB2312格式。
'big5':Big5格式。
如果省略编码类型参数,则使用系统默认编码格式。
二、文件操作
open()函数打开文件后,可以进行文件读取、写入和关闭等操作。
1、读取文件内容
如:
file = open('test.txt', 'r')
content = file.read()
print(content)
read()方法用于读取文件的全部内容,并返回一个字符串类型的变量。如果文件过大,read()方法可能会造成内存溢出的问题,这时可以使用readline()或readlines()方法。
如:
file = open('test.txt', 'r')
content = file.readline()
print(content)
readline()方法每次读取文件的一行,也可以传入一个参数size,表示读取的字符数。如果读取到文件末尾,则返回一个空字符串。
如:
file = open('test.txt', 'r')
content = file.readlines()
print(content)
readlines()方法用于读取整个文件的全部行,将每一行的字符串保存在一个列表中返回。如果文件很大,则可能会占用较大的内存。
2、写入文件内容
如:
file = open('test.txt', 'w')
file.write('Hello World')
file.close()
write()方法用于向文件中写入内容,必须在打开文件的模式为'w'或'a'时使用。如果调用了write()方法但没有调用close()方法,则写入的内容不会保存。
3、关闭文件
如:
file = open('test.txt', 'r')
file.close()
close()方法用于关闭文件,以释放系统资源。通常在打开文件后应该尽早调用close()方法,以避免出现文件操作错误。如果调用了close()方法,则不能再对文件进行读写操作。
三、异常处理
在文件操作中,可能会出现打开文件失败、写入文件错误等异常情况。为了避免这种情况的发生,可以使用Python的异常处理机制。如:
try:
file = open('test.txt', 'r')
content = file.read()
print(content)
except IOError:
print('文件操作错误')
finally:
file.close()
以上代码使用了try...except...finally语句来捕获可能出现的IOError异常,并关闭文件。try语句块中进行文件的读取操作,如果出现异常,则在except语句块中捕获异常并输出错误信息,最后使用finally语句块来关闭文件,无论是否出现异常都会执行finally语句块。
四、with语句
Python还提供了一个更加简便的方法来操作文件,即使用with语句。如:
with open('test.txt', 'r') as file:
content = file.read()
print(content)
以上代码使用with语句来打开文件,with语句会在文件使用完毕后自动关闭文件,无需手动调用close()方法。
五、建议
在进行文件操作时,建议使用with语句来打开文件,以免出现因忘记关闭文件而导致的错误。同时,也建议在进行文件操作前先判断文件是否存在,以避免出现文件不存在的情况。再次操作文件时,必须再次用open()函数来打开文件,并在操作完成后关闭文件。
