python - 文件 / 永久存储:pickle / 异常处理

一.文件

利用help(open)可以看到open()函数的定义:

>>> help(open)
Help on built-in function open in module _io:open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

默认打开模式是’rt’,也就是只读和文本模式。

打开模式:

文件对象的方法:

read函数: 

>>> f = open("D:\\1.txt")
>>> f
<_io.TextIOWrapper name='D:\\1.txt' mode='r' encoding='cp936'>
>>> f.read()
'abcdefghigk'

可以直接将文件对象转换为list

>>> f = open("D:\\1.txt")
>>> f
<_io.TextIOWrapper name='D:\\1.txt' mode='r' encoding='cp936'>
>>> f.read()
'abcdefghigk'
>>> list(f)
[]
>>> lines = list(f)
>>> for each_line in lines:
...     print(each_line)
...

这里打印出来的f是空的,具体原因待验证。

write函数:

>>> f = open("D:\\1.txt",'w')
>>> f.write('edf')
3

os模块:

模块是包含你所定义的所有的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。

OS:Operating System操作系统

OS模块中关于文件/目录常用的函数使用方法

getcwd()    返回当前工作目录:

>>> import os
>>> os.getcwd()
'C:\\Users\\27368\\AppData\\Local\\Programs\\Python\\Python312'

chdir()    改变工作目录:

>>> os.chdir('D:\\')
>>> os.getcwd()
'D:\\'

mkdir(path)    创建单层目录,如果目录已存在抛出异常:

>>> os.mkdir('D:\\A')
>>> os.mkdir('D:\\A\\B')

remove(path)    删除文件:

os.remove('D:\\A\\B\\test.txt.txt')

 rmdir(path)    删除单层目录,如果该目录非空则抛出异常:

os.rmdir('D:\\A\\B')

os.path模块

os.path模块中关于路径常用的函数使用办法

以下为函数返回True或False

 getatime(file)    返回指定文件最近的访问时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)

>>> time.gmtime(os.path.getatime('D:\\1.txt'))
time.struct_time(tm_year=2024, tm_mon=7, tm_mday=7, tm_hour=6, tm_min=45, tm_sec=2, tm_wday=6, tm_yday=189, tm_isdst=0)

 二.永久存储:pickle

python提供了一个标准的模块pickle,可以非常容易地将列表、字典这类复杂的数据类型存储为文件。它几乎可以把所有python的对象都转化为二进制的形式存放,这个过程称为pickling,从二进制转换回对象的过程称为unpickling。

pickling过程:

>>> import pickle
>>> my_list = [123,3,14,'小甲鱼',['another list']]
>>> pickle_file = open('D:\\my_list.pkl','wb')
>>> pickle.dump(my_list,pickle_file)
>>> pickle_file.close()

可以看到D盘下面新生成一个my_list.pkl

unpickling过程

>>> import pickle
>>> pickle_file = open('D:\\my_list.pkl','rb')
>>> my_list = pickle.load(pickle_file)
>>> print(my_list)
[123, 3, 14, '小甲鱼', ['another list']]

 三.异常处理

Python标准异常总结

IndexError    索引超出序列的范围 

>>> my_list = [1,2,3]
>>> my_list[3]
Traceback (most recent call last):File "<stdin>", line 1, in <module>
IndexError: list index out of range

KeyError    字典中查找一个不存在的关键字

>>> my_dict = {'one':1,'two':2,'three':3}
>>> my_dict['one']
1
>>> my_dict['free']
Traceback (most recent call last):File "<stdin>", line 1, in <module>
KeyError: 'free'

 NameError    尝试访问一个不存在的变量

>>> fishc
Traceback (most recent call last):File "<stdin>", line 1, in <module>
NameError: name 'fishc' is not defined

SyntaxError    Python的语法错误

>>> print'I love you'File "<stdin>", line 1print'I love you'^^^^^^^^^^^^^^^^^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
>>> print('I love you')
I love you

异常处理

ry-except语句
注:try语句一旦检测到异常,剩下的语句将不会被执行,会直接找到对应的异常所对应的处理代码

异常检测模板:

try:检测范围
except Exception[as reason]:出现异常(Exception)后的处理代码

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1474940.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【网络安全】实验三(基于Windows部署CA)

一、配置环境 打开两台虚拟机&#xff0c;并参照下图&#xff0c;搭建网络拓扑环境&#xff0c;要求两台虚拟的IP地址要按照图中的标识进行设置&#xff0c;并根据搭建完成情况&#xff0c;勾选对应选项。注&#xff1a;此处的学号本人学号的最后两位数字&#xff0c;1学号100…

逆袭707计划

暑假沉淀计划707 上午&#xff1a; 早起习惯&#xff1a;先打开idea将昨日所学代码敲一遍&#xff08;预估半小时&#xff09; 早饭时间可并发查看是否有自媒体商单 学习一节JavaEE课程&#xff08;预估一个半小时&#xff09; 完成对应的作业&#xff08;预估一个小时&am…

Python28-9 XGBoost算法

XGBoost&#xff08;eXtreme Gradient Boosting&#xff0c;其正确拼写应该是 "Extreme Gradient Boosting"&#xff0c;而XGBoost 的作者在命名时故意使用了不规范的拼写&#xff0c;将“eXtreme”中的“X”大写&#xff0c;以突出其极限性能和效率&#xff09;是一…

【python学习】快速了解python基本数据类型

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 前言1. 整数&#xff08;int&#xff09;2. 浮点数&#xff08;float&#xff09;3. 布尔值&#xff08;bool&#xf…

WPS+Python爬取百度之星排名

运行效果 手动拉取 https://www.matiji.net/exam/contest/contestdetail/146 如果手动查找&#xff0c;那么只能通过翻页的方式&#xff0c;每页10行&#xff08;外加一行自己&#xff09;。 爬取效果预览 本脚本爬取了个人排名和高校排名&#xff0c;可以借助WPS或MS Offi…

前端web在线PPT编辑器-PPTLIST

哈喽&#xff0c;大家好&#xff0c;今天给大家介绍一款的在线的PPT编辑器开源框架-PPTLIST&#xff1b;他是一个基于 Vue3.x TypeScript 的在线演示文稿&#xff08;幻灯片&#xff09;应用&#xff0c;还原了大部分 Office PowerPoint 常用功能&#xff0c;支持 文字、图片、…

【ffmpeg系列一】源码构建,ubuntu22与win10下的过程对比。

文章目录 背景ubuntu22结论 win10过程 对比结论 背景 顺手编译个ffmpeg试试&#xff0c;看看不同平台下谁的配置比较繁琐。 先让gpt给出个教程&#xff1a; ubuntu22 使用elementary-os7.1构建&#xff0c;看看有几个坑要踩。 错误1&#xff1a; 依赖libavresample-dev未…

明日周刊-第15期

赶在周末结束前输出一把&#xff0c;周日的晚上大家要睡个好觉哦。 文章目录 一周热点资源分享言论歌曲推荐 一周热点 科技创新与基础设施建设 深中通道正式通车试运营 时间&#xff1a;6月30日 内容&#xff1a;国家重大工程深中通道正式通车试运营&#xff0c;标志着珠江口东…

数据列表组件-报表

当数据在后端接口查询到&#xff0c;需要在页面展示出来&#xff0c;如果项目有很多report &#xff0c;可以把列表做一个组件 效果如下&#xff1a; js代码&#xff1a; <!DOCTYPE html> <html> <head><meta charset"utf-8" /><title&g…

用Goaccess对Web及雷池WAF日志实现可视化分析

君衍. 一、项目环境介绍二、Goaccess1、Goaccess介绍2、存储方式3、配置选项4、自定义日志/日期格式5、特殊格式说明符 三、雷池访问日志1、配置文件改变2、docker配置3、示例测试 四、Goaccess安装1、安装依赖2、编译安装 五、Goaccess对Nginx日志分析1、常用命令参数2、终端模…

第10章:网络与信息安全

目录 第10章&#xff1a;网络与信息安全 网络概述 计算机网络概念 计算机网络的分类 网络的拓扑结构 ISO/OSI网络体系结构 网络互联硬件 物理层互联设备 数据链路层互联设备 网络层互联设备 应用层互联设备 网络的协议与标准 网络标准 TCP/IP协议族 网络接口层协…

【Threejs进阶教程-优化篇】4.Vue/React与threejs如何解决冲突和卡顿(续)

Vue/React与threejs如何解决冲突和卡顿-续 使用说明核心思路环境搭建(vuethree)vue运行机制分析业务分离使用threejs做背景 3D模块封装使用ES6的Class来让逻辑性更强Threejs尽量按需引入创建一个类扩展写法本次代码执行顺序 扩展内容添加orbitControls和辅助线解决事件覆盖 与V…

《python程序语言设计》2018版第5章第53题利用turtle绘制sin和cos函数 sin蓝色,cos红色和52题类似

直接上题和代码 5.53 &#xff08;Turtle&#xff1a;绘制sin和cos函数&#xff09;编写程序绘制蓝色的sin函数和红色的cos函数。 代码和结果 turtle.speed(10) turtle.penup() # sin 用蓝色 turtle.color("blue") #这道题和上道题一样&#xff0c;先把turtle放到起始…

go-redis 封装事件-client封装模型、批量数据处理的导出器设计

一、redis-go的封装实践-client模型 // Copyright 2020 Lingfei Kong <colin404foxmail.com>. All rights reserved. // Use of this source code is governed by a MIT style // license that can be found in the LICENSE file.package storageimport ("context&q…

程序员如何做好需求判断?

1. 导语 本文作为2024上半年核心思考之二。 通过他人经验传导、个人实践、广泛阅读书籍(方法论类、企业经营类、传记类、财务类&#xff0c;具体书单附文末)&#xff0c;学会基于更高阶的经营者视角来做好业务需求判断。本文思路如下&#xff1a; 首先&#xff0c;抛一个灵魂问…

60页论文参考:基于Java+SpringMvc+Vue技术的智慧校园系统设计与实现

详细查看地址&#xff1a; 基于JavaSpringMvcVue技术的智慧校园系统设计与实现-CSDN博客 基于JavaSpringMvcVue技术的智慧校园系统设计与实现 六、论文参考&#xff1a;

数据驱动的内容优化:Kompas.ai如何提升内容表现

在数字化营销时代&#xff0c;内容是企业与用户沟通的重要桥梁。然而&#xff0c;随着信息量的爆炸性增长&#xff0c;如何让内容在激烈的竞争中脱颖而出&#xff0c;成为每个营销人员面临的问题。数据驱动的内容优化策略&#xff0c;通过精准分析和科学决策&#xff0c;帮助品…

【Unity】简单举例UI合批,优化draw call

1. UGUI-Editor 首先引入UGUI-Editor插件 链接: https://pan.baidu.com/s/1PpxStvgRCDi9xjUr6j6nCQ?pwdm5ju 提取码: m5ju 或者直接去Github搜索UGUI-Editor 2. 没有UI时 3. 放几个UI看看效果 4. 选中Canvas&#xff0c;右键优化Batch 发现减少了3个&#xff0c;这是因为&…

[LoaderRunner] 关于LoaderRunner的基本使用

LoadRunner环境搭建 LoadRunner运行的环境参考以下文档&#xff1a;Docs 介绍LoadRunner LoadRunner是什么 LoadRunner是性能测试工具&#xff0c;对软件或者系统的性能进行评估 为什么使用LoadRunner LoadRunner具有以下的优势&#xff1a; LoadRunner相比于其他的测试工具…

【高中数学之函数】四种幂函数图线(二次、三次、开方、开立方)

【图像】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>UNASSIGNED</title><style type"text/css">.c…