文件操作分三步:打开文件,读写文件,关闭文件。读取操作时没有给read函数加括号,会出现下面这样的车祸
>>> data = open('/home/supersun/Documents/FullStack/Week1/helloworld',encoding='utf-8') >>> print(data.read) <built-in method read of _io.TextIOWrapper object at 0x7f4bcc08b708> >>> print(data.read()) hello world! hello world! hello world! hello world! hello world!
函数open文件名作为唯一必不可少的参数,并返回一个对象。函数open的参数mode默认是'rt'读操作.
函数open的参数mode的常见取值
值 |
描 述 |
'r' | 读取模式(默认值)。文件不存在时引发FileNotFoundError异常。对文件写入操作时会报错。 |
'w' | 写入模式。文件不存在时创建新文件,打开文件时,既有内容将被删除,并从文件开头开始写入。对文件读取操作时会报错。 |
'a' | 附加模式,在文件不存在时创建新文件,在文件末尾添加内容。 |
'x' | 独占写入模式,在文件不存在时创建新文件,在文件已存在时引发FileExitsError异常。对文件读取操作时会报错。 |
't' | 文本模式(默认值),与其他模式结合使用。 |
'b' | 二进制模式(与其他模式结合使用)。如果文件包含非文本的二进制数据,如声音剪辑片段或图像,需使用二进制模式(如'rb'/'wb'/'ab'/'rb+'/'wb+'/'ab+')来禁用与文本相关的功能。 |
'+' | 读写模式(与其他模式结合使用)。 |
'r+' | 可读可写。文件不存在时引发FileNotFoundError异常。打开文件时,光标默认在文件开头,一开始无论读写都是从文件开头操作,之后每次读写操作都以上一操作后的光标位置开始。 |
'w+' | 可读可写,在文件不存在时创建新文件。打开文件时,既有内容将被删除,并从文件开头开始写入。ps:刚打开文件,读取内容会是空的哟 |
'a+' | 可读可写,在文件不存在时创建新文件。打开文件时,光标在文件末尾,读写文件都从末尾开始添加内容。ps:所以先读的时候什么也没有,因为光标在末尾。 |
在读取操作时,无论是一个字母还是一个汉字,在读取是均作为一个单位符号来读取。
file.close()有一个重要的作用是在文件关闭的时候将缓冲区的内容加载到磁盘中,当然file.close()即使省略不写,Python解释器也会自动帮我们关闭文件,但并不确定是在什么时候执行关闭文件的操作,所以还是推荐用代码显式地关闭文件。
两个Python程序可以同时对一个文件进行操作。
file.read()
file.readline()
file.readlines() #返回一个列表,每行代表一个元素。
file.flush() #将缓存区的数据立即更新到当前文件
使用with语句可以省去文件关闭操作,文件操作在with语句范围内编写,离开with语句程序会自动关闭文件,可以同时打开两个文件。