操作模式
1. 文本模式 r => rt w => wt a => at ''' 注意事项: 1. 文件中的内容全部都是以字符串为单位 2. 写入的内容只能是字符串 3. 必须指定encoding参数 ''' 2. 二进制模式 # 这里的b就不能省略了, b代表是二进制模式,执行所有的数据类型 rb wb ab ''' 注意事项: 1. 文件中的内容都以字节(bytes)为单位 2. 写入的内容必须是二进制 3. 一定不能指定encoding参数 '''
做一个简易版本的拷贝功能
# 1. 输入被拷贝文件的路径 # 2. 输入将要放入文件的路径 # 3. 通过代码操作文件实现 读被拷贝的文件,写入到指定的文件路径下 # 1. 输入被拷贝文件的路径 wait_path = input('wait path:').strip() new_path = input('new path:').strip() with open(r'%s' % wait_path, 'rb') as f, open(r'%s' % new_path, 'wb') as f1: for line in f: f1.write(line)
二进制的读写模式
# with open('a.txt', 'rb') as f: # print(f.read(6).decode('utf8')) with open('a.txt', 'r',encoding='utf8') as f: print(f.read(5)) ''' 1. 一个英文一个字节 2. 一个中文字符三个字节 3. f.read(n) 在t模式下,n代表的是字符的个事 在b模式下,n代表的是字节个数 '''
文件中控制鼠标光标的移动
with open('a.txt', 'rb') as f: print(f.read(3)) # print(f.tell()) # 查询光标移动的位置 f.seek(-3, 2) print(f.read().decode('utf8')) ''' f.seek() offset 偏移的位置量 whence 模式控制 0:默认的模式,该模式代表指针移动的字节数是以文件开头为参照的 1:以当前所在的位置为参照的 2:以文件末尾的位置为参照的 强调:其中0模式可以在t或者b模式使用,而1跟2模式只能在b模式下用 '''
修改文件内容
# 1. 读取文件内容 with open('a.txt', 'r', encoding='utf8') as f: data = f.read() print(data) # 2. 把新数据写入文件 with open('a.txt', 'w', encoding='utf8') as f: # f.seek(3, 0) # f.write('<妇女主任>') new_data = data.replace('山东', '妇女主任') f.write(new_data)
函数的语法结构
def my_len(): n = 0 for i in l: n += 1 print(n) print(my_len()) # None ''' 1. 我们现在写的代码都是重复的 模仿len实现 2. 我们现在写的代码兼容性很差 3. 我们现在写的代码没有返回值(一块代码执行完之后给我的反馈结果) 函数的简介: 提前准备好的工具,什么时候使用,就给相应的结果 '''
语法结构
def my_len(): ''' 注释 :return: ''' print('我是函数') return 123 # my_len() print(my_len()) ''' 语法结构: 1. def(关键字必须的) 用来定义函数的,函数要想使用必须先定义def 2. 函数名(必须的) 函数名的命名遵循变量名的命名就可以了,见名知意 3. 注释 (不是必须的) 类似于说明书,对函数功能的描述,简介... 4. 函数体(必须的) 执行代码的核心逻辑 5. return返回值(不是必须的) 执行完函数之后,返回的结果 6. 参数(不是必须的) 就是执行函数之前的一些前提 '''
函数的定义与调用
################################################################################ 注意事项: 1. 函数必须先定义,在调用 2. 函数在定义阶段,值检测语法是否正确 3. 函数在定义阶段,不会执行函数体代码 4. 函数只能有一个return,函数一旦遇到return,函数立马结束 ################################################################################ 函数的底层原理: ''' 1. 先在内存中申请一块空间存储函数体 2. 把函数体所在的内存地址绑定给函数名 3. 使用函数名加括号调用函数,来执行函数 '''
函数的分类
1. 内置的函数 提前在python解释器中提前定义好的,可以拿来直接使用 2. 自定义函数 程序员自己写的函数 1. 无参函数 2. 有参函数 3. 空函数(pass ...) # 无参函数 def my_func(): print('我是无参函数') # 调用函数 my_func() # 有参函数 def my_func1(a,b,c,d) print('我是有参函数') my_func1(1,2,3,4) # 空函数 def my_func2(): pass ...
浙公网安备 33010602011771号