文件收尾与函数
目录
-
操作模式
-
练习题
-
文件内光标的移动(了解)
-
文件内容修改(了解)
-
函数(重要)
-
函数的简介
-
函数的语法结构
-
函数的返回值
操作模式
1. 文本模式 r =>rt w => wt a => at 注意事项: 1.文件中的内容全部都是以字符串为单位 2.写入的内容只能是字符串 3.必须指定encoding参数 2. 二进制模式 这里的b不能省略,b代表了二进制模式,执行所有的数据类型。 rb wb ab 注意事项: 1.文件中的内容都是以字节为单位 2.写入的内容必须是二进制 3.一定不能指定encoding参数
做一个简易版本的拷贝功能
#1. 输入被拷贝文件的路径
#2. 输入要放置新文件的路径
#3. 通过代码实现,读取被拷贝的,写入到指定的文件路径下
wait_path = input('原地址路径:')
new_path = input('需要复制的地址:')
with open(r'f.txt', 'r', encoding='utf-8') as f,\
open(r'cmd.txt', 'w', encoding='utf8') as f1:
for line in f:
f1.write(line)
with open('f.txt', 'rb') as f:
print(f.read(3))
f.seek(-3, 2)
print(f.read().decode('utf8'))
'''
控制文件内光标的移动 f.seek()
f.seek(offset,whence)
offset表示位移量
始终是以字节为最小单位
正数从左往右移动
负数从右往左移动
whence表示模式
0:以文件开头为参考系(支持tb两种模式)
1:只支持b模式 以当前位置为参考系
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)
"""
1.我们现在所写的代码无法做到精简 需要用就必须重复写
模仿len的内部源码
2.我们现在所写的代码兼容性极差(无法解决)
3.我们现在所写的代码没有返回值(无法解决 使用之后的返回结果)
函数简介
函数就类似于是工具 提前定义好之后可以反复使用
"""
# 函数语法结构
"""
def 函数名(参数1,参数2):
'''函数注释'''
函数体代码
return 返回值
1.def(必须的)
是定义函数的关键字
2.函数名(必须的)
是函数的名字 相当于变量名
函数名的命名规范与风格遵循变量名的
3.参数1,参数2(可选的)
参数可以没有也可以有多个
表示在使用函数之前需要满足的一些条件
4.函数注释(可选的)
类似于产品说明书
主要用于介绍函数功能 参数使用 及其他情况
5.函数体代码(必须的)
函数核心的代码逻辑(重要)
6.return返回值(可选的)
使用函数之后反馈给使用者的结果 可以有也可以没有
"""
###########################################################
1.函数必须先定义后调用(顺序不能乱)
2.函数在定义阶段只检测语法不执行代码
3.函数在调用阶段才会执行函数体代码
如何调用函数
函数名加括号 如果函数在定义阶段有参数则在调用阶段也需要给参数
###########################################################
函数在定义与调用阶段底层原理
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号