python之文件的读取写入

文件的读取与写入

open()的方式,你必须先用Python内置的open()函数打开一个文件,才可以调用它进行读写。这种方式注意要养成读取或写入完毕之后,加一个close()方法习惯,避免资源占用。
r模式是只读(默认模式,可以省略,省略时表示执行r模式),w写入模式,a追加写入模式,注意写入文件的 内容均为字符串类型 
w模式是只用于写入,如果文件存在,直接清空原先的文本,写入新的文本,如果文件不存在,则新建写入。注意写入文件的内容均为字符串类型
a模式是追加写入,在原先文本的后面写入内容。如果原文件不存在,则新建写入。
例:
#打开文件 encoding='utf-8'如果不写没有报错,就不需要写
file1=open('d:/2020826.txt','w',encoding='utf-8') 
file1.write('我是一个文件')   #写入
file1.close()        #关闭

文件打开后光标的位置移动seek()

seek(offset [,from])  offset表示要移动的字节数   from表示光标从哪个位置开始移动,不写的话默认为0
第二个参数 from有3个值。
0:默认值,表示回到文件的开头。注意1,2,只有在rb模式(二进制模式)下才生效
1:表示从文件的当前位置开始统计光标位置
2:表示从文件的末尾位置开始统计光标位置 比如file1.seek(-3,2)表示光标跳转到文件末尾,然后向左偏移3位
例:
file1=open('d:/file1.txt','rb')
file1.seek(-3,2)    #表示将光标跳转到文件末尾,然后向左偏移三位开始读取
file1.close()

  读写操作  r+  w+ a+

w+删除以前的内容,写入新的内容,如果找不到文件创建文件写入 
r+覆盖以前的内容,如果找不到文件,则报错 注意:和w+区别是,r+从文件开头位置开始一边写入一边清空,w+是彻底删除后写入
a+接着以前的内容往后写,如果找不到文件创建文件 
file1=open('d:/323.txt','r+') 
file1.write('电风扇') 
file1.seek(0) 
file1.close()

再介绍一种写法 with open,它不需要我们自己写close方法关闭,比较好用,用法的话和open等同还可以打开多个文件
with open('d:/123.txt','r+') as file1:    #打开文件并起别名file1
    file1.write('电风扇')
    file1.seek(0)
    print(file1.read())

关于splitlines()、readline()、readlines()用法
splitlines()  读取文件所有的内容,以‘行’为单位返回列表
# splitlines是否保留换行符('
', '
', 
')默认为为False,不包含换行符,如果为 True,则保留换行符。
 
readline()  一次读取文件中一行内容,里面可以有一个参数表示读取几个字符,返回字符串。如果执行两次readline(),中间会有一个空行
 
readlines()  一次读取整个文件,其返回值是一个列表,每一行为一个元素
 




原文地址:https://www.cnblogs.com/king2/p/13564259.html