python 基础知识6-文件操作
1、只读文件
#以文本打开文件‘r‘ f = open(‘C:\\Users\\Administrator\\Desktop\\Python\\f.txt‘,mode=‘r‘,encoding=‘utf-8‘) content = f.read() print(content) f.close()#中国是个伟大的国家。 #以二进制形式打开文件‘rb‘ f = open(‘C:\\Users\\Administrator\\Desktop\\Python\\f.txt‘,mode=‘rb‘) content = f.read() print(content) f.close()#b‘\xe4\xb8\xad\xe5\x9b\xbd\xe6\x98\xaf\xe4\xb8\xaa\xe4\xbc\x9f\xe5\xa4\xa7\xe7\x9a\x84\xe5\x9b\xbd\xe5\xae\xb6\xe3\x80\x82‘ ‘‘‘ ‘C:\\Users\\Administrator\\Desktop\\Python\\f.txt‘:路径(不能用‘\‘!可以用‘\\‘或‘/‘) mode:定义操作方式. encoding:声明,此次打开文件使用什么编码本。一般来说:你的文件用什么编码保存的,就用什么方法打开,一般都是用utf-8(有些使用的是gbk). f.read():操作文件,比如读文件,给文件写内容,等等,都必须通过文件句柄进行操作. f.close():关闭文件. ‘‘‘
2、只写文件
#对于w:没有此文件就会创建文件。 f = open(‘C:\\Users\\Administrator\\Desktop\\Python\\t.txt‘,mode = ‘w‘,encoding= ‘utf-8‘) f.write(‘寂*凉‘) f.close()#寂*凉 #若有此文件,先将源文件全部清除,再写。 f = open(‘C:\\Users\\Administrator\\Desktop\\Python\\t.txt‘,mode = ‘w‘,encoding= ‘utf-8‘) f.write(‘5月9号‘) f.close()#5月9号 #wb:以二进制写入,需用encode()转换f = open(‘C:\\Users\\Administrator\\Desktop\\Python\\t.txt‘,mode = ‘wb‘)f.write(‘5月9号‘.encode(‘utf-8‘))f.close() #‘a‘:追加写f = open(‘C:\\Users\\Administrator\\Desktop\\Python\\t.txt‘,mode = ‘a‘,encoding= ‘utf-8‘)f.write(‘21度‘)f.close()#5月9号21度 #‘ab‘:以二进制追加写f = open(‘C:\\Users\\Administrator\\Desktop\\Python\\t.txt‘,mode = ‘ab‘)f.write(‘适中‘.encode(‘utf-8‘))f.close()#5月9号21度适中
3、读写
#‘r+‘读写 f = open(‘C:\\Users\\Administrator\\Desktop\\Python\\t.txt‘,mode = ‘r+‘,encoding =‘utf-8‘) print(f.read())#5月9号21度适中 f.write(‘5月9日‘) f.close() 注意:如果在读写模式下,先写后读,那么文件就会出问题,因为默认光标是在文件的最开始,要是先写,则写入的内容会讲原内容覆盖掉,直到覆盖到写完的内容,然后在后面开始读取。
4、光标控制:seek
seek(n)光标移动到n位置,注意: 移动单位是byte,所有如果是utf-8的中文部分要是3的倍数移动到开头:seek(0)移动到结尾:seek(0,2) seek的第二个参数表示的是从哪个位置进行偏移,默认是0,表示开头,1表示当前位置,2表示结尾
f = open(‘C:\\Users\\Administrator\\Desktop\\Python\\f.txt‘,mode=‘r+‘,encoding=‘utf-8‘) f.seek(0) # 光标移动到开头 content = f.read()# 读取内容, 此时光标移动到结尾 print(content)#中国是个伟大的国家。 f.seek(0) # 再次将光标移动到开头 f.seek(0,2) # 将光标移动到结尾 content1 = f.read()# 读取内容. 什么都没有 print(content1)# f.seek(0) f.write(‘确实‘) content2 = f.read()# 写入信息. 此时光标在6 中文2 * 3个 = 6 print(content2)#是个伟大的国家。 f.close()
5、功能详解
#(确实是个伟大的国家。) #read(n):读出的字符数 f = open(‘C:\\Users\\Administrator\\Desktop\\Python\\f.txt‘,mode=‘r+‘,encoding=‘utf-8‘) content = f.read(3) print(content)#确实是 f.close() #seek(n):按照字节定光标的位置 f = open(‘C:\\Users\\Administrator\\Desktop\\Python\\f.txt‘,mode=‘r+‘,encoding=‘utf-8‘)#(确实是个伟大的国家。) f.seek(3) content = f.read() print(content)#实是个伟大的国家。 f.close() #tell():获取当前光标的位置 # f = open(‘C:\\Users\\Administrator\\Desktop\\Python\\f.txt‘,mode=‘r+‘,encoding=‘utf-8‘) f.seek(3) print(f.tell())#3 f.close() f = open(‘C:\\Users\\Administrator\\Desktop\\Python\\f.txt‘,mode=‘a+‘,encoding=‘utf-8‘) f.write(‘真的‘) count = f.tell() f.seek(count-6) print(f.read())#真的 f.close() #readline:一行一行读 f = open(‘C:\\Users\\Administrator\\Desktop\\Python\\f.txt‘,mode=‘r+‘,encoding=‘utf-8‘) print(f.readline()) f.close() #readlines:每一行当成列表中的一个元素,添加到list中 f = open(‘C:\\Users\\Administrator\\Desktop\\Python\\f.txt‘,mode=‘r+‘,encoding=‘utf-8‘) count = f.readlines() for i in count: print(i.strip()) f.close()
6、打开文件另一种方式with open
优点:(1):用with上下文管理这种方式,它会自动关闭文件句柄。
(2):一个with 语句可以操作多个文件,产生多个文件句柄。
with open(‘C:\\Users\\Administrator\\Desktop\\Python\\f.txt‘,mode=‘r+‘,encoding=‘utf-8‘) as f, open(‘C:\\Users\\Administrator\\Desktop\\Python\\t.txt‘,mode=‘r+‘,encoding=‘utf-8‘) as f1: print(f.read()) print(f1.read())
相关推荐
YENCSDN 2020-11-17
lsjweiyi 2020-11-17
houmenghu 2020-11-17
Erick 2020-11-17
HeyShHeyou 2020-11-17
以梦为马不负韶华 2020-10-20
lhtzbj 2020-11-17
夜斗不是神 2020-11-17
pythonjw 2020-11-17
dingwun 2020-11-16
lhxxhl 2020-11-16
坚持是一种品质 2020-11-16
染血白衣 2020-11-16
huavhuahua 2020-11-20
meylovezn 2020-11-20
逍遥友 2020-11-20
weiiron 2020-11-16