1、读模式
f.read()
f.readable()#这个文件是否可读,返回布尔值;
f.readline(“读模式”)#读取第一行;
f.readlines(“读模式”)#读取所有内容 以字符串方式存储在列表内;
f = open('小重山','r',encoding='utf-8') #第一个参数是文件位置,第二个参数是读模式,第三个参数是定义编码 data = f.read() #括号里是有参数的,5代表要取5个字符,默认是读取所有。 print(data) f.close() #关闭
2、写模式
f.write('写模式')#注意 写之前会清空原文本文件,然后进行写入! 若没有文件则会新创建一个文件进行写入;
f.write("写模式1\n写模式2\n写模式3\n写模式4\n")#换行写入;
f.writelines(["写模式1\n写模式2\n写模式3\n写模式4\n"])#该模式要传入的数据类型必须是列表;
f.writable()#这个文件是否可写,返回布尔值;
f = open('小重山','w',encoding='utf-8') #第一个参数是文件位置,第二个参数是写模式,第三个参数是定义编码 data = f.write('写模式') print(data) f.close()
#注意 写之前会清空原文本文件,然后进行写入! 若没有文件则会新创建一个文件进行写入
f = open('name','w',encoding='utf-8') #第一个参数是文件位置,第二个参数是写模式,第三个参数是定义编码
data = f.write("写模式1\n写模式2\n写模式3\n写模式4\n")
print(data)
f.close()
写模式1
写模式2
写模式3
写模式4
f.writelines(["写模式1\n写模式2\n写模式3\n写模式4\n"])#该模式要传入的数据类型必须是列表
f = open('小重山','a',encoding='utf-8') # a 代表 append 追加 不会清空原文件 data = f.write('写模式') print(data) f.close()
3、# r+ , w+ , a+模式
with:
同时管理多个文件对象
1 with open('log1','r') as f_read, open('log2','w') as f_write: 2 for lien in f_read: 3 f_write.write(lien)
具体的操作方法:
1、f.readline() #读取第一行
f = open('小重山','r',encoding='utf-8') #第一个参数是文件位置,第二个参数是写模式,第三个参数是定义编码 data = f.readline() print(data) f.close()
2、data = f.readliens() # 读取所有内容 以字符串方式存储在列表内
f = open('小重山','r',encoding='utf-8') #第一个参数是文件位置,第二个参数是写模式,第三个参数是定义编码 #data = f.readline() data = f.readlines() print(data) f.close()
['写模式哈哈写模式\n', '哈哈\n', '发的\n']
3、readable()#这个文件是否可读,返回布尔值;
f=open("name","r",encoding="utf-8")
print(f.readable())
f.close()
True
循环 f.readliens() 取出的列表,并指定第二行添加字符串'oooo'
(不常用) 若文件较大,占内存
f = open('小重山','r',encoding='utf-8') #第一个参数是文件位置,第二个参数是写模式,第三个参数是定义编码 data = f.readlines() number = 0 for i in data: number += 1 if number == 2: i = ''.join([i.strip() , 'oooo']) print(i.strip()) f.close() 写模式哈哈写模式 哈哈oooo 发的
常用方法:
1 f = open('小重山','r',encoding='utf-8') #第一个参数是文件位置,第二个参数是写模式,第三个参数是定义编码 2 number = 0 3 for i in f: #这里for内部将f做成一个迭代器,用一行取一行,用完清空,不占内存 4 number += 1 5 if number == 2: 6 i = ''.join([i.strip() , 'oooo']) 7 print(i.strip()) 8 f.close() 9 10 11 print(f.tell(3)) #打印光标的位置 对于英文字符就占一个,中文字符占3个; 12 13 print(f.seek(3)) #调整光标位置的 14 15 16 f.flush() #把缓存里的数据更新到磁盘上(防止程序崩溃数据丢失) 17 18 19 >>> f = open('hello','w') 20 >>> f.write('alex is 35 ')11 21 >>> f.write('hello world')11 22 >>> f.flush() 23 alex is 35 hello world 24 25 #进度条效果展示 26 27 import sys,time 28 29 for i in range(30): #第一种方法 30 sys.stdout.write('=') 31 sys.stdout.flush() 32 time.sleep(0.1) 33 34 35 for i in range(30): #第二种方法 36 print('=',end='',flush=True) 37 time.sleep(0.1)
f.truncate()# 截取字符
f = open('小重山','a',encoding='utf-8')
f.write('asfzxc')
f.truncate(5)