python3的txt文件读写

如今我通常都是直接用with open比较保险:函数

with open("test.txt","r","utf-8") as f:spa

# 为a+模式时,由于为追加模式,指针已经移到文尾,读出来的是一个空字符串。ftext指针

= f.read()# 一次性读所有成一个字符串ftextlist = f.readlines()# 也是一次性读所有,但每一行做为一个子句存入一个列表blog

 

w新建只写,w+新建读写,两者都会将文件内容清零utf-8

r读打开,r+读写打开字符串

 

**w+,r+与a+区别:it

r+:可读可写,若文件不存在,报错, 进行了覆盖写;io

w+: 可读可写,若文件不存在,建立,进行了清空写;class

a+:可读可写但光标在最后面(而后读到最后面,因此读到空字符串),若文件不存在,建立,进行了追加写;test

 

下图为r+模式下的覆盖写


 

 

不可读的打开方式w和a

若不存在会建立新文件的打开方式:a,a+,w,w+

 

 

a 模式不能用来读,即便用f.read()等会报错。

 

而后记一下下面几种方法:

F.read([size]) #size为读取的长度,以byte为单位 
F.readline([size]) 
#读一行,若是定义了size,有可能返回的只是一行的一部分 
F.readlines([size]) 
#把文件每一行做为一个list的一个成员,并返回这个list。其实它的内部是经过循环调用readline()来实现的。若是提供size参数,size是表示读取内容的总长,也就是说可能只读到文件的一部分。


F.write(str)   # 写入一句,要换行的话能够加上"\n"
#把str写到文件中,write()并不会在str后加上一个换行符 
F.writelines(seq)   # 写入多行
#把seq的内容所有写到文件中。这个函数也只是忠实地写入,不会在每行后面加上任何东西。

 

 另:调用seek方法能够把指针指向想要的位置:如 f.seek(0)  #指向开头

相关文章
相关标签/搜索