python基础语法学习: 文件的简单读写操作 文章目录文件操作什么是编码文件的操作步骤open() 打开文件mode常用的三中基础访问模式文件的读取read() 方法:readlines() 方法readline() 方法for 循环读取文件行文件的关闭with open 语法文件的写入writh() 写入内容flush() 刷新内容到硬盘中文件的追加写入文件操作计算机只认识 0 和 1, 所以需要将内容翻译为 0 和 1 才能保存在计算机中, 同时也需要编码, 将计算机中保存的 0 和 1, 反向翻译回可以识别的内容什么是编码编码就是一种规则集合, 记录了内容和二进制间相互进行转换的逻辑,编码有许多中, 我们最常用的是 UTF-8 编码文件的操作步骤我们平时对文件基本操作, 大概可以分为三个步骤打开文件读写文件关闭文件open() 打开文件在python中, 使用 open 函数, 可以打开一个已经存在的文件, 或者创建一个新文件open(name,mode,encoding)name: 要打开的目标文件名的字符串, 可以包含文件所在的具体路径)mode: 设置打开文件的模式(访问模式): 只读, 写入, 追加等encoding: 编码格式例如:fopen(python.txt,w,encodingUTF-8)此时的 ‘f’ 是 open 函数的文件对象, 对象是 python 中一种特殊的数据类型, 拥有属性和方法, 可以使用对象, 属性或对象, 方法对其进行访问fopen(python.txt,r,encodingUTF-8)print(type(f))# class _io.TextIOWrappermode常用的三中基础访问模式模式描述r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。w打开一个文件只用于写入。如果该文件已存在则打开文件并从开头开始编辑原有内容会被删除。如果该文件不存在创建新文件。a打开一个文件用于追加。如果该文件已存在新的内容将会被写入到已有内容之后。如果该文件不存在创建新文件进行写入。文件的读取read() 方法:文件对象.read(num)num表示要从文件中读取的数据的长度(单位是字节), 如果没有传入 num, ,那么就表示读取文件中所有的数据fopen(python.txt,r,encodingUTF-8)# 读取10个字节print(f读取10个字符的内容:{f.read(10)})readlines() 方法readlines 可以按照行的方式把整个文件中的内容进行一次性读取, 并且返回的是一个列表, 其中每一行的数据为一个元素fopen(python.txt,r,encodingUTF-8)contentf.readlines()print(type(content))# class listprint(content)# [hello xinyan\n, hello world\n, hello\n]f.close()readline() 方法一次读取一行fopen(python.txt,r,encodingUTF-8)contentf.readline()print(content)contentf.readline()print(content)contentf.readline()print(content)# 关闭文件f.close()输出:hello xinyan hello world hellofor 循环读取文件行fopen(python.txt,r,encodingutf-8)forlineinf:print(line)文件的关闭f.open(python.txt,r,encodingUTF-8)f.close()最后通过close, 关闭文件对象, 也就是关闭对文件的占用如果不调用close, 同时程序没有停止运行,那么这个文件就将一直被python程序占用with open 语法withopen(python.txt,r,encodingUTF-8)asf:forlineinf:print(f每一行数据是:{line})通过在with open 的语句块中对文件进行操作, 可以在操作完成后自动关闭close 文件, 避免遗忘掉close方法文件的写入当 mode “w” 的模式打开文件, 如果不存在文件, 会创建一个新的文件writh() 写入内容flush() 刷新内容到硬盘中文件写入通过write()方法fopen(python.txt,w,encodingutf-8)f.write(hello world)f.flush()注意: 直接调用write, 内容并没有真正写入文件, 而且会积攒在程序的内存中, 称之为缓冲区当调用 flush 的时候, 内容会真正写入文件, 这样做是避免频繁的操作硬盘, 导致效率下降close() 方法是内置flush() 的功能的, 如果不调用flush() 方法, 但是调用了close() 方法, 同样文件也是会写入内容的文件的追加写入打开方式fopen(python.txt,a,encodingutf-8)通过write() 方法写入新的内容fopen(python.txt,w,encodingutf-8)f.write(hello world)f.close()fopen(python.txt,a,encodingutf-8)f.write(\nhello world)f.close()文件内容hello world hello world