今日内容

作业讲解

简易版本的拷贝功能
1.获取待拷贝的目标文件路径
2.获取即将拷贝到哪个地方的新路径
3.利用文件操作实现数据拷贝

1 # 1.需要拷贝的文件路径
2 wait_copy_file = input('file path>>>:').strip()
3 # 2.新的文件路径
4 new_file_path = input('new path>>>:').strip()
5 # 3.以r模式打开步骤1的路径 以w模式打开步骤2的路径
6 with open(r'%s' % wait_copy_file, 'rb') as f1, \
7         open(r'%s' % new_file_path, 'wb') as f2:
8     for line in f1:
9         f2.write(line)

今日内容

 

 

二进制模式读写操作

 1 # with open(r'a.txt','rb') as f:
 2 #     # print(f.read())
 3 #     print(f.read(6).decode('utf8'))
 4 
 5 
 6 # with open(r'a.txt','r',encoding='utf8') as f:
 7     # print(f.read())
 8     # print(f.read(4))
 9 
10 """
11 read()  括号内可以放数字
12     在t模式下表示字符个数
13     在b模式下表示字节个数
14 英文字符统一使用一个bytes来表示
15 中文字符统一使用三个bytes来表示
16 """

文件内光标的移动

 1 # with open(r'b.txt', 'rb') as f:
 2 #     print(f.read(4).decode('utf8'))
 3 #     print(f.tell())  # 查看光标移动了多少个字节
 4 #     f.seek(3, 1)
 5 #     print(f.read().decode('utf8'))
 6 """
 7 控制文件内光标的移动  f.seek()
 8 f.seek(offset,whence)
 9     offset表示位移量
10         始终是以字节为最小单位
11             正数从左往右移动
12             负数从右往左移动
13     whence表示模式
14         0:以文件开头为参考系(支持tb两种模式)
15         1:只支持b模式 以当前位置为参考系
16         2:只支持b模式 以文件末尾为参考系
17 """
18 
19 # 小练习:实现动态查看最新一条日志的效果
20 import time
21 with open('a.txt', 'rb') as f:
22     f.seek(0, 2)
23     while True:
24         line = f.readline()
25         if len(line) == 0:
26             # 没有内容
27             time.sleep(0.5)
28         else:
29             print(line.decode('utf-8'), end='')

今日内容

文件的内容修改

 1 # 方式1 覆盖
 2 # with open(r'c.txt','r',encoding='utf8') as f:
 3 #     data = f.read()
 4 #     # print(type(data))
 5 # with open(r'c.txt','w',encoding='utf8') as f1:
 6 #     new_data = data.replace('tony','jason')
 7 #     f1.write(new_data)
 8 
 9 # 方式2 新建
10 import os
11 with open('c.txt', mode='rt', encoding='utf-8') as read_f, \
12         open('c.txt.swap', mode='wt', encoding='utf-8') as write_f:
13     for line in read_f:
14         write_f.write(line.replace('SB', 'kevin'))
15 os.remove('c.txt')  # 删除原文件
16 os.rename('c.txt.swap', 'c.txt')  # 重命名文件
17 
18 """
19 自己总结两种方式的优缺点
20 """

今日内容

 

 

函数简介?

函数就类似于是工具 提前定义好之后可以反复使用

函数语法结构

def 函数名(参数1,参数2):
'''函数注释'''
函数体代码
return 返回值

1.def(必须的)
是定义函数的关键字
2.函数名(必须的)
是函数的名字 相当于变量名
函数名的命名规范与风格遵循变量名的
3.参数1,参数2(可选的)
参数可以没有也可以有多个
表示在使用函数之前需要满足的一些条件
4.函数注释(可选的)
类似于产品说明书
主要用于介绍函数功能 参数使用 及其他情况
5.函数体代码(必须的)
函数核心的代码逻辑(重要)
6.return返回值(可选的)
使用函数之后反馈给使用者的结果 可以有也可以没有

函数的定义与调用

1.函数必须先定义后调用(顺序不能乱)
2.函数在定义阶段只检测语法不执行代码
3.函数在调用阶段才会执行函数体代码
如何调用函数
函数名加括号 如果函数在定义阶段有参数则在调用阶段也需要给参数

函数在定义与调用阶段底层今日内容

 

函数在定义与调用阶段底层原理

1.在内存空间中申请一块空间存储函数体代码
2.将函数体代码所在的空间地址绑定给函数名
3.函数名加括号则会执行函数体代码

函数的分类

1.内置函数
python解释器自带的(提前给你定义好了 你直接使用即可)
2.自定义函数
程序员自己写的函数
2.1.无参函数
2.2.有参函数
2.3.空函数

无参函数

1 # 无参函数是指在函数定义中括号里面没有写参数(变量名)
2 def my_func():
3     print('函数')

有参函数

1 # 有参函数是指在定义中括号里面写了参数(变量名)
2 def my_func(a,b):
3     print('函数')
4 my_func(1,2)

空函数:函数体代码为空(pass ...)

虽然空函数本身没有含义 但是空函数可以提前规定好编写代码的思路

1 def run():
2     pass
3 def fight():
4     pass
5 def talk():
6     pass

今日内容

 

上一篇:攻防世界 reverse Replace


下一篇:open_basedir php授权目录设置