在文件处理当中,只有read默认是以字符为单位,其他方法均已字节为单位.
def open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True):
file表示文件的名称,可以是绝对路径,也可以是相对路径.
mode表示打开文件的方式,r表示读,w表示写,a表示追加.
encoding表示已哪种编码格式读取文件中的内容,如果不指定,默认使用当前平台的编码,对于
Windows操作系统来说为gbk编码.
open()成功返回一个文件对象后,后续对该文件的操作都通过这个“句柄”实现。
open('小重山1.txt','r',encoding='utf-8')
打开文件的三种方式:
r : 以r的方式打开整个文件,若文件不存在,则直接报错
w : 以w的方式打开整个文件,若文件存在则先清空文件的内容(但是并不删除文件),若文件不存在则先创建这个文件。
注意:在以w的方式打开整个文件的过程中,只有在第一次打开文件的时候才会先清空整个文件的内容,在整个操作的
过程中
并不会写一次清除一次。
r和w代表以文本的方式读,并以文本的方式写。
a : 以追加的方式打开整个文件,若文件不存在则先创建这个文件,若文件存在则只追加内容。
"+" 表示可以同时读写某个文件
r+, 读写【可读,可写】,文件不存在会报错的
w+, 写读【可读,可写】, 清空文件内容,然后以读写方式打开文件。
a+ ,写读【可读,可写】
"b"表示已字节流的方式操作相应的文件,当以"b"的方式操作文件的时候,
处理数据的基本单位是字节(二进制),而不再是字符。
rb, 以二进制的方式读写某个文件 (直接将文件在硬盘中对应的bytes读取到内存当中)
wb, 以二进制的方式向某个文件中写入内容。(直接将文件对应的bytes写到硬盘当中)
def close(self, *args, **kwargs):
程序结束之后要注意关闭流从而释放与该流相关的所有系统资源. python 有机制会自动关闭 但是不安全 鬼知
道什么时候关闭
.close()
def read(self, *args, **kwargs):
read()从文件中读取指定个数的字符(r模式)或者字节(rb模式),如果没有给定参数size(默认-1)或为负数,则
一直读至末尾,获取整个文件的内容,若给定size值则取指定长度字符 (中文英文都是一个字符)。
.read()
def readline(self, *args, **kwargs):
读取一行文本,并随后将光标转移至下一行的起始偏移量。即同时两次读取则会取出第一行和第二行
def readlines(self, hint=-1):
读取文件所有行文本的内容,并以列表的形式进行返回。 处理时按需要使用 .strip()方法 \n会多产生一个空格
.readlines()
def readable(self):
判断文件的打开方式是否是可读的,如果是则返回True.
def write(self, *args, **kwargs):
向文件中写入字符串,并返回写入字符的个数,注意:要自己添加相应的换行符。
.write()
def writelines(seq)
向文件中写入一个字符串列表,注意:seq中的每个元素必须是字符串类型.
def writable(self, *args, **kwargs):
判断文件的打开方式是否是可写的,如果是则返回True.
def seek(self,offset,whence=0):
控制文件光标位置移动的字节数,
whence=0代表文件的开始位置.
whence=1代表光标所处的当前位置
whence=2代表文件的结束位置.
注意:seek处理数据的单位为字节。
def tell(self, *args, **kwargs):
当前文件中光标所处的位置.
def truncate(self, *args, **kwargs):
截取文件的内容,其中结果只保留前n个字节的内容。
文件操作的其他功能:
文件的修改:
1、读源文件的内容,然后一行一行的向新文件中写.
2、通过os模块将源文件给删除.
3、将新文件重命名为源文件的名字。