今日内容详细
今日内容详细
文件操作补充
with open(r'userinfo.txt','a',encoding='utf8') as f: print(f.readable()) # True print(f.writable()) # False
光标移动
可以使用seek(offset,whence)来控制光标的移动,其中的参数有两个:
whence:是操作模式
0:既可以用在文本模式也可以用在二进制模式,光标位置在文件开头
1:只可以在二进制模式下使用,光标位置在当前位置
2:只可以在二进制模式下使用,光标位置在文件末尾
with open(r'a.txt', 'r', encoding='utf8') as f: data = f.read() print(data) f.seek(1, 0) print(f.read())
with open(r'a.txt', 'rb') as f: data = f.read(15) print(data.decode('utf8')) f.seek(-12, 2) print(f.read().decode('utf8'))
文件修改
基本方法
with open(r'a.txt', 'r', encoding='utf8') as f: # 读取数据 data = f.read() print(data) with open(r'a.txt', 'w', encoding='utf8') as f: # 写入时替换 f.write(data.replace('hello world', 'hzh')) with open(r'a.txt', 'r', encoding='utf8') as f: data = f.read() print(data)
进阶方法
创建一个新文件,将老文件内容写入新文件,过程中完成修改,之后将老文件删除,将新文件命名成老文件,从而达到修改的效果
import os with open(r'a.txt', 'r', encoding='utf8') as f, open(r'a.txt.backend', 'w', encoding='utf8') as f1: for line in f: f1.write(line.replace('tony', 'jason')) os.remove(r'a.txt') os.rename(r'a.txt.backend', r'a.txt')
函数
函数就相当于是工具,提前定义好后续可以反复使用,避免了代码冗余的情况
语法结构
def 函数名(参数1,参数2): '''函数的注释''' 函数体代码 return 函数的返回值
ps:函数的使用一定要先定义后使用