项目6 存储监测数据到云端_第1页
项目6 存储监测数据到云端_第2页
项目6 存储监测数据到云端_第3页
项目6 存储监测数据到云端_第4页
项目6 存储监测数据到云端_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目6存储实验室数据到云端主讲:吴雪飞知识回顾项目引入项目5设计了各种监测数据的处理器,通过控制结构处理复杂逻辑、用组合数据类型(列表、字典)组织结构化数据,并通过函数模块化代码。但在实际应用中,数据需要长期保存——比如环境监测系统中的温度、湿度数据,若程序关闭后数据丢失,将无法进行长期分析。实现数据的持久化存储是本项目的核心目标。项目描述项目6将设计一个网页版监测数据存储云盘,核心功能包括:文件与文件夹管理用户可通过网页界面创建文件(如sensor_2025.txt)或文件夹(如2025_data)。数据存储与读取在文本框中输入监测数据(如时间戳和温湿度值),点击保存后写入文件。可随时读取文件内容并在网页中显示。数据格式与持久化将用户输入的内容保存为本地文件(模拟“云存储”效果)。支持文本(.txt)和结构化数据(如.csv或.json)格式。项目效果相关知识:文件基本操作文件的概念文件是计算机中用于存储数据的基本单位,以特定格式保存在存储介质(如硬盘、U盘)中。它可以是文本文件,以字符编码存储可读内容;也可以是二进制文件,存储非文本数据。文件的类型文本文件如“.txt”,“.csv”,“.py”等文件二进制文件如“.exe”,“.dll”,“.mp4”等文件相关知识:文件基本操作文件操作流程打开文件→操作文件→关闭文件open()函数基本语法open(file,#文件路径(字符串或字节类型),必需参数mode='r',#打开模式(默认文本读模式)encoding=None,#文件编码(如'utf-8')**kwargs#其他可选参数)相关知识:文件基本操作文件操作流程打开文件→操作文件→关闭文件相关知识:文件基本操作文件打开模式值描述r只读模式(默认,可省略),文件指针指向文件头,若文件不存在则抛出异常w写模式,文件指针指向文件头,若文件已存在,则覆盖写入;若文件不存在,则创建x写模式,创建新文件,文件指针指向文件头,若文件已存在则抛出异常a追加模式,文件指针指向文件尾,不覆盖文件中原有内容+读写模式,与r/w/x/a一同使用,如r+、w+、x+、a+,在原功能基础上增加同时读写b二进制模式(可与其他模式组合使用),如rb、wb、ab、ab+t文本模式(默认,可省略)相关知识:文件基本操作上下文管理器(with语句)Python的with语句通过上下文管理器自动管理文件资源,确保文件操作后自动关闭,即使发生异常也能安全释放资源。相关知识:文件基本操作文本文件读写读取全部内容withopen("data.txt","r",encoding="utf-8")asf:content=f.read()#返回整个文件内容的字符串print(content)逐行读取withopen("data.txt","r",encoding="utf-8")asf:forlineinf:#逐行遍历,节省内存print(line.strip())#去除行尾换行符(如"Hello\n"→"Hello")相关知识:文件基本操作文本文件读写写入内容withopen("output.txt","w",encoding="utf-8")asf:#写入单个字符串(需手动添加换行符)f.write("Hello,Python!\n")

#写入多行内容(列表中的每个元素为一行)lines=["Line1\n","Line2\n","Line3\n"]f.writelines(lines)相关知识:文件基本操作文件读写常用方法方法描述read()一次读取文件所有内容,返回字符串read(size)从文件中读取size个字符作为结果返回readline()从文本文件中读取一行内容作为结果返回readlines()将文本文件中每行文本作为一个字符串存入列表,返回该列表seek(offset)将文件指针移到新位置,offset值:0-文件开头;1-当前位置;2-文件结尾write(s)把字符串s的内容写入文件wirtelines(l)将元素全为字符串的列表l写入文本文件,不添加换行符相关知识:文件编码基本概念文件编码是文本文件处理中的核心概念,它定义了字符(如字母、数字、符号)与二进制字节之间的映射规则,决定了数据如何存储和传输。常见编码类型相关知识:文件编码在Python中指定文件编码在Python中,推荐使用encoding参数显式指定文件编码,避免依赖系统默认设置,以确保跨平台一致性。示例6.1文件处理与异常捕获综合练习(6-ex-1.py)任务描述文件读取使用open()函数以只读模式打开文件,并指定UTF-8编码。使用with语句自动管理文件资源,确保异常时也能正确关闭。读取文件全部内容并计算其长度。根据文件内容长度进行相应计算,空文件会触发除零错误。异常处理捕获FileNotFoundError:处理文件不存在的场景。捕获ZeroDivisionError:处理空文件导致的除零错误。使用else块处理正常流程。使用finally块确保资源清理(演示用途)。状态反馈文件不存在时输出明确提示。计算错误时显示具体错误信息。操作成功时返回计算结果。示例6.1文件处理与异常捕获综合练习(6-ex-1.py)相关知识:面向对象程序设计(OOP)对比维度面向对象程序设计(OOP)面向过程程序设计编程思维模拟现实实体(对象为中心)线性步骤分解(函数为中心)数据与函数关系数据与方法绑定在对象内部(封装)数据与函数分离,通过参数传递核心概念类、对象、继承、多态、封装函数、变量、流程控制代码复用通过继承、组合复用已有类通过函数调用复用逻辑扩展性高(新增类或方法不影响旧代码)低(修改函数可能影响全局)复杂度管理天然模块化,适合大型项目适合简单逻辑,复杂项目易混乱典型场景GUI开发、游戏引擎、企业级系统脚本工具、数学计算、简单数据处理Python示例classDog:defbark(self):...defcalculate_sum(a,b):...相关知识:面向对象程序设计(OOP)几个重要概念的类比类设计图纸(汽车)对象根据图纸造出来的具体产品(一辆汽车)属性产品的特征(颜色、品牌等)方法产品的功能(驾驶、刹车等)相关知识:面向对象程序设计(OOP)类的定义与组成关键字class打头,类名采用大驼峰命名法类属性:所有实例共享的变量,和方法平级构造方法:第一个参数为self,初始化对象属性实例属性:每个实例独有的变量,通常在构造方法中赋值实例方法:第一个参数为self,用于操作实例的属性和行为类方法:第一个参数为cls,使用@classmethod装饰器,用于操作类属性或实现替代构造函数静态方法:使用@staticmethod装饰器,无self和cls参数,独立函数相关知识:面向对象程序设计(OOP)对象的创建与操作相关知识:面向对象程序设计(OOP)类属性和实例属性类属性是定义在类内部(与__init__平级)、被所有实例共享的公共数据成员,用于存储类级别的通用配置或共享状态。实例属性是绑定在具体对象上的独立数据,通过self在构造方法(__init__)中初始化,用于描述对象的个性化特征。相关知识:面向对象程序设计(OOP)类属性和实例属性通过类修改影响所有实例通过实例修改创建独立属性相关知识:面向对象程序设计(OOP)实例方法、类方法和静态方法实例方法通过创建的对象调用时,self参数会隐式传递,无需显式添加;若通过类去调用,则必须显式添加self参数。类方法使用@classmethod装饰,首参数为cls,调用主体是类本身,核心作用是操作类属性,实现类级别功能。类方法既可通过类直接调用,也可通过对象调用。静态方法使用@staticmethod装饰器声明,不自动接收self或cls,就像一个普通函数,但逻辑上与类相关。类名或对象实例均可调用,但不能访问或修改实例属性或类属性。相关知识:面向对象程序设计(OOP)面向对象程序设计三大特性类的封装打包+隐藏。将属性和方法组合在一起即为“打包”。通过访问控制保护数据完整性即为“隐藏”。类的继承继承是面向对象编程中实现代码复用和层次化设计的重要机制。它允许子类(派生类)自动获取父类(基类)的所有属性和方法,同时可以扩展新功能或重写现有方法。相关知识:面向对象程序设计(OOP)类的继承相关知识:面向对象程序设计(OOP)面向对象程序设计三大特性类的封装类和对象的定义。类的继承继承是面向对象编程中实现代码复用和层次化设计的重要机制。它允许子类(派生类)自动获取父类(基类)的所有属性和方法,同时可以扩展新功能或重写现有方法。类的多态同一操作作用于不同类的实例时,会产生不同的行为;通过统一的接口调用不同对象的方法。分为编译时多态(方法重载)和运行时多态(方法重写)。相关知识:面向对象程序设计(OOP)类的多态拓展知识:os库方法和属性功能说明chdir(path)把path设为当前工作目录getcwd()返回当前工作目录listdir(path)返回path中所有文件和文件夹名称组成的列表,不包含子文件夹中的文件mkdir(path)创建目录rmdir(path)删除目录,目录中不能有文件夹或子文件夹remove(path)删除指定的文件rename(src,dst)将文件名src重命名为dstsep文件路径中的分隔符walk(top,topdown=True,onerror=None,followlinks=False)目录树生成器,返回一个元组(dirpath,dirnames,filenames),其中dirpath为以top为根的整个目录树上的每个目录,dirnames为dirpath中所有子目录名称列表,filenames为dirpath中所有文件名列表拓展知识:os库拓展知识:os.path模块方法功能说明abspath(path)返回给定路径的绝对路径basename(path)返回指定路径的最后一个路径分隔符后面的部分dirname(path)返回指定路径的最后一个路径分隔符前面的部分exists(path)判断指定的路径是否存在,返回True或Falseisdir(path)判断指定的路径是否为文件夹,返回True或Falseisfile(path)判断指定的路径是否为文件,返回True或Falsejoin(path,*paths)连接两个或多个path,相邻路径之间插入路径分隔符,返回连接后的路径字符串normcase(path)把路径中所有字母改为小写,把所有斜杠改为反斜杠split(path)以路径中的最后一个斜杠为分隔符把路径分隔成两部分,返回元组splitext(path)从路径中分隔文件的扩展名,返回元组splitdrive(path)从路径中分隔驱动器的名称,返回元组拓展知识:os.path模块拓展知识:json模块JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,基于键值对(Key-Value)组织数据,支持嵌套结构(如对象、数组)。Python的json模块是标准库的一部分,无需额外安装,提供以下核心功能:序列化将Python对象(如字典、列表)转换为JSON格式的字符串。反序列化将JSON格式的字符串解析为Python对象。文件操作直接读写JSON文件,实现数据持久化。拓展知识:json模块序列化函数json.dumps(obj,**kwargs)indent:缩进空格数ensure_ascii:设为False保留非ASCII字符(如中文)拓展知识:json模块序列化函数json.dump(obj,fp,**kwargs)若将Python对象序列化并写入文件,参数与dumps()相同,需额外指定文件对象fp。拓展知识:json模块反序列化函数json.loads(s,**kwargs)将JSON字符串解析为Python对象。json.load(fp,**kwargs)从文件读取J

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论