Python基础 ( 五 )
Posted Matrixssy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础 ( 五 )相关的知识,希望对你有一定的参考价值。
#文件处理
#文件打开模式
r 只读
w 只写
a 只追加
x 只读,没文件会报错
#open中的mode参数
‘r‘ ‘w‘ ‘a‘ ‘x‘
#以下注意!!!
‘w+‘ == w + r #假定open的文件存在的情况下:以w的形式open 并加上r功能 (打开一个空文件,执行操作后覆盖回原文件)
f = open(‘text1‘,‘w+‘,encoding=‘utf-8‘) --> f称为文件句柄 data = f.readlines() --> data 的值为空 ,因为w+ 是开一个空文件,无论之前该文件里有何内容都无关 print(data) f.write(‘ 11 22 33 44 ‘) --> 写入文本 data1 = f.readlines() print(data1) --> data1 的值仍然为空,因为读取是从写入的文本的最后开始读取 f.close()
‘a+‘ == a + r #假定open的文件存在的情况下:以 a 的形式open 并加上r功能(打开原文件,从文件的末尾开始执行操作)
f = open(‘text1‘,‘a+‘,encoding=‘utf-8‘) data = f.readlines() --> data 的值为空 ,因为a+ 是打开原文件,但是从末尾开始执行操作,此时末尾无字符,读取的为空 print(data) f.write(‘ 11 22 33 44 ‘) --> 追加文本 data1 = f.readlines() print(data1) --> data1 的值仍然为空,因为读取是从追加的文本的最后开始读取(为空) f.close()
‘r+‘ == r + w #假定open的文件存在的情况下:以 r 的形式open 并加上w功能(打开原文件,从文件的开头开始执行操作)
f = open(‘text1‘,‘r+‘,encoding=‘utf-8‘) data = f.readlines() --> data 的值为原文件里的文本 ,因为a+ 是打开原文件,从开头开始执行操作 print(data) f.write(‘ 11 22 33 44 ‘) --> 读取完文件后,光标到达文件末尾,从末尾写入文本 data1 = f.readlines() print(data1) --> data1 的值仍然为空,因为是从写入文本的最后开始读取(为空) f.close()
‘x+‘ == x + r
#在底层以二进制处理文件(linux下没卵用,因为linux底层就是以二进制处理)
rb wb ab rb+ wb+ ab+
#文件处理读操作
#open函数(open的值称为文件句柄)
f = open(‘C:\Users\ssy\Desktop\1.txt‘, ‘r‘ ,encoding=‘utf-8‘) #注意路径分隔符为\ ,不指定路径只输入文件名(1.txt)则需要文件与py代码文件的路径一致 #open函数如果不指定编码方式,默认使用当前系统的编码读取文本 #windows默认系统编码方式为gbk ,mac为utf8 。故在windows下得指定编码方式
#windows下打开记事本另存为时可以查看编码方式
#第二个参数 ‘w‘ 代表 只写模式(不可读),不输入默认为 r 只读模式
text = f.read() print(text) f.close()
#read函数
f = open(‘C:\Users\ssy\Desktop\1.txt‘,encoding=‘utf-8‘) a = f.readable() -->判断是否可读 b = f.readline() -->一次读取一行,第一行开始(下一行有文本的情况下,读取完默认换行(实际上顺序读取每一行的每个字符,包括隐藏的 )) c = f.readline()
d = f.readlines() -->从当前光标位置开始(如上面调用了readline函数,从调用后的光标位置开始),读取所有行,存入列表中 print(a) print(b , end=‘‘)
print(d) f.close()
#文件处理写操作
#write函数
f = open(‘C:\Users\ssy\Desktop\1.txt‘,‘w‘,encoding=‘utf-8‘) # w (只写) 模式下,直接开一个新文件覆盖原文件(相当于清空了原文件),再开始下一步操作. #若没有此文件,则会创建 f.write(‘111111 the first line ‘) f.write(‘end 0,0 Aha ! you were tricked ! ‘) f.writable() #判断是否 只写 模式 f.writelines([‘aaa ‘,‘123‘,‘bbb‘,[‘abc‘]]) #注意文件里都为字符串类型,故也只能写入字符串 f.close()
#文件处理追加操作
f = open(‘C:\Users\ssy\Desktop\1.txt‘,‘a‘,encoding=‘utf-8‘) f.write(‘write in the end ‘) f.close()
#文件处理with语句(打开文件执行完操作后自动关闭文件)
with open(‘text1‘,‘w‘,encoding=‘utf-8‘) as f : f.write(‘hello world~ ‘)
#同时打开多个文件进行操作
with open(‘text1‘,‘w‘,encoding=‘utf-8‘) as f , open(‘text2‘,‘w‘,encoding=‘utf-8‘) as f1 : #此操作 open文件有先后顺序(左到右) f.write(‘hello world~ ‘) f1.write(‘I hate the world !!! ‘)
以上是关于Python基础 ( 五 )的主要内容,如果未能解决你的问题,请参考以下文章