day11

本文详细介绍了Python中文件的高级操作技巧,包括不同模式的读写功能,以及seek(), tell(), read(), truncate()等方法的应用。同时,深入探讨了函数的定义与调用,包括无参、有参函数,函数的返回值,参数类型及其使用方法。

一、文件的高级应用

# r/w/a

# # 即可读又可写(尽量不要使用)  # r+ 是在后面追加
with open('test.py', 'r+', encoding='utf8') as fr:
    data = fr.read()
    print(fr.writable())
    fr.write('x = 10')
    print(data)


# # 清空文件的功能是w提供的, w+更不要使用
with open('test.py', 'w+', encoding='utf8') as fr:
    print(fr.readable())
    fr.write('x = 10')
    data =  fr.read()
    print(data)


# a有追加的功能,a的指针在末尾,a+功能也没用
    with open('test.py', 'a+', encoding='utf8') as fr:
    fr.seek(1, 0)
    data = fr.read()  # 指针在末尾
    print(data)

    fr.write('x = 10')
    fr.flush()
    
# seek()、tell()、read()、truncate() 只需了解

二、文件修改的两种方式

# 文件没有修改这一说,只有覆盖这一说
import os

# 一次性修改全部
with open('test.py', 'r', encoding='utf-8') as fr,\
        open('test_swap.py', 'w', encoding='utf-8') as fw:
    data = fr.read()
    data = data.replace('sb', 'dsb')
    fw.write(data)

os.remove('test.py') # 删除文件
os.rename('test_swao.py', 'test.py') # 重命名文件

# 一边读一边改
with open('test.py', 'r', encoding='utf-8') as fr,\
        open('test_swap.py', 'w', encoding='utf-8') as fw:
    for line in fr:
        line = line.replace('sb', 'dsb')
        fw.write(f'{line}\n')
   
os.remove('test.py')  # 删除文件
os.rename('test_swap.py', 'test.py')  # 重命名文件

三、函数的定义

'''
def 函数名():  # 定义阶段(造车轮阶段)
    """函数注释写在这里"""  # 函数相当于工具, 注释相当于工具的说明书
    <代码块>

# 使用  # 调用阶段(开车阶段)
函数名()
'''
1.函数的三种定义方式
# 参数,未知数,变量
# 1.无参函数 # 工具可以单独使用
def add():
    """无参函数"""
    x = input('num1:')
    y = input('num2:')

    print(int(x) + int(y))


# 2.有参函数
def add(x, y):  # 我这个工具不能单独使用,必须得加个配件,才能使用
    """有参函数"""
    print(int(x) + int(y))


print(1)
x = input('num1:')
y = input('num2:')
add(x, y)


# 3.空函数: 定义了函数,啥都没有
def func():  # 只知道工具叫什么名字,但不知道如何造出这个工具
    pass
2.函数的调用
def add(x, y):
    return x+y


res = add(10, 20)  # 函数的调用
print(res*12)
3.函数的返回值
def add(x, y):
    # return (x, y, x + y)  # return可以返回任意数据类型
    return x, y, x + y  # return可以返回任意数据类型,不加括号返回多个值时,默认用元祖的形式返回


x,y,z = add(1, 2)
print(x,y,z)
4.函数的参数
def add(num1, num2):  # 形参
    """有参函数"""
   print(int(num1) + int(num2))

add(1, 2)  # 实参


# 形参: 定义阶段才有形参,形式参数,啥也没用,只是占个位置,具有描述意义
# 实参: 调用阶段才有实参,实际的参数,具有具体的值

# 位置形参: 一个一个的写形参,就叫位置形参
def add(num1, num2):  # 形参
    """有参函数"""
    print(num1)
    print(num2)
    print(int(num1) + int(num2))

# 位置实参: 一个一个写过去,就叫位置实参
# add(1, 2)  # 实参

# 两个位置形参,就必须得要两个位置实参对应,从左到右一一对应

# 默认形参: 不需要传参,可以使用默认值; 传参就使用你传的值, 默认形参必须放到位置形参后面
def shopping(name='nick'):  # 形参经常会引用同一个值
    goods_dict = {1: '特斯拉', 2: '奔驰', 3: 'nick'}
    print(f'恭喜你这个小钢炮{name},得到{goods_dict[1]}一个')

shopping('yongjiu')


# 关键字实参: 按照形参名给定具体的值,可以打破位置形参必须得一一对应传值的规定,位置实参必须在关键字实参之前
def shopping(x, name='nick'):
    goods_dict = {1: '特斯拉', 2: '奔驰', 3: 'nick'}
    print(f'恭喜你这个小钢炮{name},得到{goods_dict[x]}一个')


shopping(1, name='yongjiu')

# 函数的参数尽量不要超过3个


# 需要的用的时候用,一般用位置形参+位置实参

转载于:https://www.cnblogs.com/17vv/p/11323026.html

一、数据采集层:多源人脸数据获取 该层负责从不同设备 / 渠道采集人脸原始数据,为后续模型训练与识别提供基础样本,核心功能包括: 1. 多设备适配采集 实时摄像头采集: 调用计算机内置摄像头(或外接 USB 摄像头),通过OpenCV的VideoCapture接口实时捕获视频流,支持手动触发 “拍照”(按指定快捷键如Space)或自动定时采集(如每 2 秒采集 1 张),采集时自动框选人脸区域(通过Haar级联分类器初步定位),确保样本聚焦人脸。 支持采集参数配置:可设置采集分辨率(如 640×480、1280×720)、图像格式(JPG/PNG)、单用户采集数量(如默认采集 20 张,确保样本多样性),采集过程中实时显示 “已采集数量 / 目标数量”,避免样本不足。 本地图像 / 视频导入: 支持批量导入本地人脸图像文件(支持 JPG、PNG、BMP 格式),自动过滤非图像文件;导入视频文件(MP4、AVI 格式)时,可按 “固定帧间隔”(如每 10 帧提取 1 张图像)或 “手动选择帧” 提取人脸样本,适用于无实时摄像头场景。 数据集对接: 支持接入公开人脸数据集(如 LFW、ORL),通过预设脚本自动读取数据集目录结构(按 “用户 ID - 样本图像” 分类),快速构建训练样本库,无需手动采集,降低系统开发与测试成本。 2. 采集过程辅助功能 人脸有效性校验:采集时通过OpenCV的Haar级联分类器(或MTCNN轻量级模型)实时检测图像中是否包含人脸,若未检测到人脸(如遮挡、侧脸角度过大),则弹窗提示 “未识别到人脸,请调整姿态”,避免无效样本存入。 样本标签管理:采集时需为每个样本绑定 “用户标签”(如姓名、ID 号),支持手动输入标签或从 Excel 名单批量导入标签(按 “标签 - 采集数量” 对应),采集完成后自动按 “标签 - 序号” 命名文件(如 “张三
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值