python3全栈学习笔记-03

本文介绍了Python中文件的基本操作,包括打开、读取、写入及关闭等,并详细解释了不同模式下的文件操作特点。此外,还介绍了如何高效处理大文件的方法,以及集合的概念与操作方法。

对文件的操作分为3步:
1. 打开文件,获得文件句柄
2. 通过文件句柄操作文件
3. 关闭文件

假设有如下文件:   

   

1 上联 :**春水初生,春林初盛,春风十里,不如你。**
2 下联 :**秋池渐涨,秋叶渐黄,秋思一半,赋予卿。**

 

  

文件的基本操作:

1 f= open('file.txt','r')#以只读方式打开一个文件,获取文件句柄,如果是读的话,r可以不写,默认就是只读,
2 first_line = f.readline()#获取文件的第一行内容,返回的是一个list
3 print(first_line)#打印第一行
4 second_line=f.readline()#获取除了第二行内容
5 print(second_line)#获取文件的第二行内容,返回的是一个list
6 print('------------------')
7 res=f.read()#获取除了第二行剩下的所有文件内容
8 print(res)

 


打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,后面通过此文件句柄对该文件操作
打开文件的模式有:

1 r,只读模式(默认)。
2 w,只写模式。【不可读;不存在则创建;存在则删除内容;】
3 a,追加模式。【不可读; 不存在则创建;存在则只追加内容;】

 


"+" 表示可以同时读写某个文件

1 r+,【可读、可写;可追加,如果打开的文件不存在的话,会报错】
2 w+,【写读模式,使用w+的话,已经存在的文件内容会被清空,可以读到已经写的文件内容】
3 a+,【追加读写模式,不存在则创建;存在则只追加内容;】

 



"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)
"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)
文件操作方法:

 1 # -*- coding:utf-8 -*-
 2 with open('test.txt', 'r+',encoding='utf-8') as f: # encoding参数可以指定文件的编码
 3     print(f.readline())  # 读一行
 4     print(f.readable())  # 判断文件是否可读
 5     print(f.writable())  # 判断文件是否可写
 6     print(f.encoding)# 打印文件的编码
 7 # f.read()  # 读取所有内容,大文件时不要用,因为会把文件内容都读到内存中,内存不够的话,会把内存撑爆
 8 # f.readlines()  # 读取所有文件内容,返回一个list,元素是每行的数据,大文件时不要用,因为会把文件内容都读到内存中,内存不够的话,会把内存撑爆
 9 # f.tell()  # 获取当前文件的指针指向
10 # f.seek(0)  # 把当前文件指针指向哪
11     f.write('\n爱情证书\n')  # 写入内容
12     f.flush()  # 写入文件后,立即从内存中把数据写到磁盘中
13     f.truncate()  # 清空文件内容
14     f.writelines(['爱情证书', '孙燕姿'])  # 将一个列表写入文件中
15 f.close()#关闭文件

 


大文件时,读取文件高效的操作方法:

用上面的read()和readlines()方法操作文件的话,会先把文件所有内容读到内存中,这样的话,内存数据一多,非常卡,高效的操作,就是读一行操作一行,读过的内容就从内存中释放了
with使用:在操作文件的时候,经常忘了关闭文件,这样的就可以使用with,它会在使用完这个文件句柄之后,自动关闭该文件,使用方式如下:
```python

1 with open('test.txt', 'r+',encoding='utf-8') as fr, open('file_bak', 'w+',encoding='utf-8') as fw:
2     for line in fr:  # 循环file.txt中的每一行
3         fw.write(line)  # 写到file_bak文件中

 

修改文件

# -*- coding:utf-8 -*-

with open('test.txt', 'r+',encoding='utf-8') as fr, open('file_bak', 'w+',encoding='utf-8') as fw:
    for line in fr:  # 循环file.txt中的每一行
        new_line = line.replace('爱情证书', '爱情在哪里')
        fw.write(new_line)  # 写到file_bak文件中

 


集合:

集合也是一种数据类型,一个类似列表东西,它的特点是无序的,不重复的,也就是说集合中是没有重复的数据

集合的作用:

1、它可以把一个列表中重复的数据去掉,而不需要你再写判断

2、可以做关系测试,比如说有两个班,一个性能测试班,一个是接口测试班的,想找出来既学习了性能又学习了接口测试的同学,就可以用集合

集合操作

 1 # -*- coding:utf-8 -*-
 2 
 3 list1 = {1, 2, 3, 4, 5, 6, 9}
 4 list2 = {2, 3, 4, 6, 1}
 5 list3 = {1, 2, 3}
 6 print(list1.intersection(list2))  # 取交集,也就是取list1和list2中都有的
 7 print(list1 & list2)# 取交集
 8 print(list1.union(list2))  # 取并集,也就是把list1和list2合并了,然后去除重复的
 9 print(list1 | list2)# 取并集
10 print(list1.difference(list2))  #取差集 在list中存在,在list2中没有的
11 print(list1 - list2)
12 print(list3.issubset(list1))#判断list3是不是list1的子集
13 print(list1.issuperset(list3))#判断list1是不是list3的父集
14 print(list1.isdisjoint(list3))#判断list1和list3是否有交集
15 print(list1.symmetric_difference(list2))#对称差集,输出两个列表中都没有的值,也就是把两个集合中相同的去掉
16 print(list1 ^ list2)
17 list1.add(888)#添加元素
18 list1.update([777,666,666])
19 list1.remove(777)#删除元素,如果元素不存在会报错
20 list1.pop()#删除一个随机的元素,并返回删除的元素
21 list1.discard('dddd')#如果删除的元素存在,删除,不存在不做处理

 

 
 
 
 

转载于:https://www.cnblogs.com/purepleasure/p/pythonStudy03.html

本实践项目深入研究了基于C#编程环境与Halcon图像处理工具包的条码检测技术实现。该原型系统具备静态图像解析与动态视频分析双重功能,通过具体案展示了人工智能技术在自动化数据采集领域的集成方案。 C#作为微软研发的面向对象编程语言,在Windows生态系统中占据重要地位。其语法体系清晰规范,配合.NET框架提供的完备类库支持,能够有效构建各类企业级应用解决方案。在计算机视觉技术体系中,条码识别作为关键分支,通过机器自动解析商品编码信息,为仓储管理、物流追踪等业务场景提供技术支持。 Halcon工具包集成了工业级图像处理算法,其条码识别模块支持EAN-13、Code128、QR码等多种国际标准格式。通过合理配置检测算子参数,可在C#环境中实现高精度条码定位与解码功能。项目同时引入AForge.NET开源框架的视频处理组件,其中Video.DirectShow模块实现了对摄像设备的直接访问控制。 系统架构包含以下核心模块: 1. Halcon接口封装层:完成图像处理功能的跨平台调用 2. 视频采集模块:基于AForge框架实现实时视频流获取 3. 静态图像分析单元:处理预存图像文件的条码识别 4. 动态视频解析单元:实现实时视频流的连续帧分析 5. 主控程序:协调各模块工作流程 系统运行时可选择图像文件输入或实时视频采集两种工作模式。识别过程中将自动标注检测区域,并输出解码后的标准条码数据。该技术方案为零售业自动化管理、智能仓储系统等应用场景提供了可靠的技术实现路径,对拓展计算机视觉技术的实际应用具有重要参考价值。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
Java内存泄漏发现技术研究.pdf内容概要:本文围绕Java内存泄漏的发现技术展开研究,针对现有研究多集中于泄漏发生后的诊断与修复,而缺乏对泄漏现象早期发现方法的不足,提出了一套结合动态与静态分析的综合解决方案。动态方面,设计了一种面向泄漏的单元测试生成方法,通过识别高风险泄漏模块并生成具有泄漏检测能力的单元测试,实现早期泄漏发现;静态方面,提出基于模式的检测方法,重点识别因错误使用WeakHashMap等弱引用结构导致的内存泄漏,通过静态扫描源代码提前发现潜在缺陷。系统基于JUnit、CodePro Analytix和Soot等工具实现,实验验证了其在JDK等开源项目中发现已知泄漏缺陷的能力。; 适合人群:具备一定Java编程基础,从事软件开发、测试或质量保障工作1-3年的研发人员,以及对程序分析、内存管理感兴趣的研究生或技术人员。; 使用场景及目标:①帮助开发者在编码和测试阶段主动发现潜在内存泄漏,提升软件健壮性;②为构建自动化内存泄漏检测工具链提供理论与实践参考;③深入理解Java内存泄漏的常见模式(如WeakHashMap误用)及对应的动态测试生成与静态分析技术。; 阅读建议:建议结合Soot、JUnit等工具的实际操作进行学习,重点关注第三章和第四章提出的三类泄漏模块识别算法与基于模式的静态检测流程,并通过复现实验加深对溢出分析、指向分析等底层技术的理解。
本方案提供一套完整的锂离子电池健康状态评估系统,采用Python编程语言结合Jupyter交互式开发环境与MATLAB数值计算平台进行协同开发。该技术框架适用于高等教育阶段的毕业设计课题、专业课程实践任务以及工程研发项目。 系统核心算法基于多参数退化模型,通过分析电池循环充放电过程中的电压曲线特性、内阻变化趋势和容量衰减规律,构建健康状态评估指标体系。具体实现包含特征参数提取模块、容量回归预测模型和健康度评估单元三个主要组成部分。特征提取模块采用滑动窗口法处理时序数据,运用小波变换消除测量噪声;预测模型集成支持向量回归与高斯过程回归方法,通过交叉验证优化超参数;评估单元引入模糊逻辑判断机制,输出健康状态百分制评分。 开发过程中采用模块化架构设计,数据预处理、特征工程、模型训练与验证等环节均实现独立封装。代码结构遵循工程规范,配备完整注释文档和单元测试案。经严格验证,该系统在标准数据集上的评估误差控制在3%以内,满足工业应用精度要求。 本方案提供的实现代码可作为研究基础,支持进一步功能扩展与性能优化,包括但不限于引入深度学习网络结构、增加多温度工况适配、开发在线更新机制等改进方向。所有核心函数均采用可配置参数设计,便于根据具体应用场景调整算法性能。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值