python中open函数的使用

一、open()的函数原型
open(file, mode=‘r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True)
从官方文档中我们可以看到open函数有很多的参数,我们常用的是file,mode和encoding,对于其它的几个参数,平时不常用,也简单介绍一下。
buffering的可取值有0,1, >1三个,0代表buffer关闭(只适用于二进制模式),1代表line buffer(只适用于文本模式),>1表示初始化的buffer大小;
encoding表示的是返回的数据采用何种编码,一般采用utf8或者gbk;
errors的取值一般有strict,ignore,当取strict的时候,字符编码出现问题的时候,会报错,当取ignore的时候,编码出现问题,程序会忽略而过,继续执行下面的程序。
newline可以取的值有None, \n,  \r, '', ‘\r\n' ,用于区分换行符,但是这个参数只对文本模式有效;
closefd的取值,是与传入的文件参数有关,默认情况下为True,传入的file参数为文件的文件名,取值为False的时候,file只能是文件描述符,什么是文件描述符,就是一个非负整数,在Unix内核的系统中,打开一个文件,便会返回一个文件描述符。
二、file() 与open()
两者都能够打开文件,对文件进行操作,也具有相似的用法和参数,但是,在我看来,这两种文件打开方式有本质的区别,file为文件类,用file()来打开文件,相当于这是在构造文件类,而用open()打开文件,是用python的内建函数来操作。
三、参数Mode的基本取值

r、w、a为打开文件的基本模式,对应着只读、只写、追加模式;
b、t、+、U这四个字符,与以上的文件打开模式组合使用,二进制模式,文本模式,读写模式、通用换行符,根据实际情况组合使用、

四、 常见的mode取值组合
1、r或rt    默认模式,文本模式读
2、rb      二进制文件
3、w或wt    文本模式写,打开前文件存储被清空
4、wb    二进制写,文件存储同样被清空 
5、a   追加模式,只能写在文件末尾
6、a+  可读写模式,写只能写在文件末尾 
7、w+ 可读写,与a+的区别是要清空文件内容
8、r+   可读写,与a+的区别是可以写到文件任何位置 

五、几个模式的区别
为了测试不同模式的区别,我们用一小段代码来测试写入文件中的直观不同。

?
1
2
3
4
5
6
7
test = [ "test1\n" , "test2\n" , "test3\n" ]
   f = open ( "b.txt" , "a+" )
   try :
     for s in test:
       f.write( s )
   finally :
     f.close()

(1)a+与w+模式的区别

(2)a+与r+模式

在写入文件前,我们在上面那段代码中加上一句 seek(6),用来定位写入文件写入位置。

注意:r+模式打开文件时,此文件必须存在,否则就会报错,‘r'模式也如此
六、换行符带来的烦恼
当你用二进制模式将带有换行符的字符串写入txt文件时,数据存储是正确的,但是当用windows平台的记事本程序打开时,你看到的换行符确实一个个的小黑块,但是,用文本模式,就不存在这样的问题。
在这里,涉及到了不同平台由于编码的问题,而对换行符有不同的识别。unix或者linux系统识别\n为换行符的标识,但是windows平台的编码,对\n不予理睬。
但是python自身带有转化功能,用文本模式的时候,你不会看到由于平台不同而造成的换行效果不同,但是,二进制模式的时候,python便不会再去转化,是什么,就写进去什么,此时的换行符,再用文本模式打开,windows下就不识别‘\n'换行符了。

转载于:https://www.cnblogs.com/R-ling/p/8412578.html

### 回答1: Python的`open`函数用于打开文件并返回文件对象。`open`函数的基本语法如下: ```python file = open(file_path, mode='r', encoding=None, errors=None, newline=None, closefd=True, opener=None) ``` 其,`file_path`是文件路径,`mode`是打开文件的模式,常用的有: - `r`:只读模式,默认值,如果文件不存在则抛出错误; - `w`:只写模式,如果文件不存在则创建文件,如果文件存在则覆盖原有内容; - `x`:创建新文件并以只写模式打开,如果文件已存在则抛出错误; - `a`:追加模式,如果文件不存在则创建文件; - `b`:二进制模式,用于处理非文本文件; - `t`:文本模式,用于处理文本文件,默认值。 `encoding`参数指定文件编码,`errors`参数指定文件编码解码时的错误处理方式,`newline`参数指定文本模式下的换行符类型,`closefd`参数指定是否在关闭文件时关闭底层文件描述符,`opener`参数指定自定义的文件打开器。 下面是一个打开文件、读取文件内容并关闭文件的例子: ```python with open('file.txt', 'r') as f: content = f.read() print(content) ``` 其,`with`语句用于自动关闭文件,`f.read()`方法用于读取文件内容。 ### 回答2: 在Python,`open()`函数用于打开一个文件,并返回一个文件对象。它是一个内置函数,可以用于读取、写入和操作文件。 `open()`函数的基本语法如下: ```python open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) ``` 参数说明: - `file`:文件路径或名称,表示要打开的文件。 - `mode`:打开文件的模式,默认为只读模式(`'r'`)。其他常见模式有写入模式(`'w'`),追加模式(`'a'`),二进制模式(`'b'`)等。 - `buffering`:设置缓冲策略,默认为系统默认值,即全缓冲。 - `encoding`:指定文件的编码方式,默认为`None`,表示使用系统默认编码。 - `errors`:指定编码错误的处理方式,默认为`None`,表示忽略错误。 - `newline`:设置换行符的处理方式,默认为`None`,表示使用系统默认换行符。 - `closefd`:设置是否在文件关闭时同时关闭底层文件描述符,默认为`True`。 - `opener`:指定一个自定义文件打开器,如果设置了该参数,则`open()`函数使用`opener`来打开文件。 `open()`函数成功打开文件后,将返回一个文件对象,可以利用该对象对文件进行读取、写入和操作等操作。 例如,可以使用如下方式打开文件并读取其的内容: ```python file = open('example.txt', 'r') content = file.read() print(content) file.close() ``` 需要注意的是,在打开文件后,一定要记得关闭文件,可以使用`close()`方法来完成。另外,还可以使用`with open`语句来自动关闭文件,如下所示: ```python with open('example.txt', 'r') as file: content = file.read() print(content) ``` 以上就是`open()`函数的基本用法。根据实际需要,还可以调用其他方法对文件进行操作,例如`readline()`、`write()`、`seek()`等方法。 ### 回答3: 在Pythonopen()函数是用于打开文件的。它接受两个参数:文件名和打开模式。文件名是一个字符串,表示要打开的文件的名称或路径。打开模式是一个字符串,指定对文件进行何种操作。 常用的打开模式包括: - "r":只读模式,用于读取文件内容。 - "w":写入模式,用于创建新文件或覆盖已有文件的内容。 - "a":追加模式,用于在已有文件的末尾添加内容。 - "x":创建模式,用于创建新文件。如果指定的文件已存在,则会抛出FileExistsError异常。 - "b":二进制模式,用于读取或写入二进制文件。 - "t":文本模式,用于读取或写入文本文件。 open()函数的返回值是一个文件对象,可以通过该对象进行读取、写入或其他操作。可以使用read()、readline()、readlines()等方法来读取文件内容。 下面是一个使用open()函数读取文本文件的例子: ```python file = open("example.txt", "r") content = file.read() print(content) file.close() ``` 或者可以使用with语句来自动关闭文件: ```python with open("example.txt", "r") as file: content = file.read() print(content) ``` 使用open()函数在文件末尾添加内容的示例: ```python with open("example.txt", "a") as file: file.write("This is a new line.") ``` 通过open()函数创建新文件并写入内容的例子: ```python with open("new_file.txt", "w") as file: file.write("This is a new file.") ``` 总之,open()函数Python用于打开文件的重要函数,通过适当地选择文件名和打开模式,可以实现对文件的读取、写入、追加等操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值