欢迎访问宙启技术站
智能推送

Python函数open()的用法和实操技巧

发布时间:2023-06-10 21:45:27

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()函数来打开文件,并在操作完成后关闭文件。