文件收尾与函数

目录

  • 操作模式

  • 练习题

  • 文件内光标的移动(了解)

  • 文件内容修改(了解)

  • 函数(重要)

  • 函数的简介

  • 函数的语法结构

  • 函数的返回值


 

操作模式

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
	...
    

  

posted @ 2022-01-05 21:06  柏云殇  阅读(58)  评论(0)    收藏  举报