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 1
    print'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.mfbz.cn/a/782496.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

王者荣耀与和平精英的语音识别不准确怎么办?分享一次意想不到的解决经历!

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 完整经历 📒🔍 问题初现 🔍🔎 排查之路:从绝望到希望的转折 🔎🎉 顿悟时刻:原来是“她”的恶作剧 🎉⚓️ 相关链接 ⚓️📖 介绍 📖 作为一位打字速度惊人的玩家,我向来自豪于能在王者荣耀和和平精英等游戏…

Three.js机器人与星系动态场景(四):封装Threejs业务组件

实际在写业务的时候不会在每个组件里都写几十行的threejs的初始化工作。我们可以 将通用的threejs的场景、相机、render、轨道控制器等进行统一初始化。同时将非主体的函数提到组件外部&#xff0c;通过import导入进组件。将业务逻辑主体更清晰一些。下面的代码是基于reactthre…

DHCP与TCP的简单解析

目录 一、DHCP 1.1 DHCP概述 1.2 DHCP的优势 1.3 DHCP的模式与分配方式***** 1.3.1 DHCP的模式&#xff1a;C/S模式&#xff08;客户机与服务器模式&#xff09; 1.3.2 DHCP的分配方式 1.4 DHCP的租约过程及原理 1.4.1 DHCP的工作原理***** 1.4.2 更新租约原理***** …

智慧校园-基础平台功能总体概述

智慧校园基础平台是现代教育信息化的核心&#xff0c;它集成了系统管理、基础数据、系统监控、系统工具、流程管理等关键功能&#xff0c;构建了一个全面、智能、安全的校园生态系统。系统管理部分&#xff0c;通过权限管理和用户管理&#xff0c;实现了对用户访问权限的精细化…

使用qt creator配置msvc环境(不需要安装shit一样的宇宙第一IDE vs的哈)

1. 背景 习惯使用Qt编程的童鞋&#xff0c;尤其是linux下开发Qt的童鞋一般都是使用qt creator作为首选IDE的&#xff0c;通常在windows上使用Qt用qt creator作为IDE的话一般编译器有mingw和msvc两种&#xff0c;使用mingw版本和在linux下的方式基本上一样十分简单&#xff0c;不…

warning: GOPATH set to GOROOT (D:\go) has no effect

warning: GOPATH set to GOROOT (D:\go) has no effect gopath 设置一下&#xff0c;并且不要和 goroot 设置成同一个目录

【carla】ubuntu安装carla环境

我们可以通过查看 CARLA 的 GitHub release 页面来找到最新版本的下载链接。 下载 CARLA 压缩包 访问 CARLA Releases 页面&#xff1a; CARLA Releases on GitHub 查找最新版本&#xff1a; 找到最新的版本&#xff0c;点击下载&#xff0c;第一个压缩包 3. 解压 CARLA 包&…

在先企业字号被申请注册成商标!

今天一网友联系普推商标知产老杨&#xff0c;说自己注册的商标被某公司无效宣告了&#xff0c;去年联系老杨时&#xff0c;当时就给说这个商标名称存在风险&#xff0c;与别人的字号权存在高度近似&#xff0c;而且是同行业同地区在后面注册的。 十几年前某公司先成功注册成字号…

AI Agent【项目实战】:MetaGPT遇上元编程,重塑复杂多智能体协作的边界

AI Agent【项目实战】&#xff1a;MetaGPT遇上元编程&#xff0c;重塑复杂多智能体协作的边界 MetaGPT 以一条需求作为输入&#xff0c;并输出用户故事/竞争分析/需求/数据结构/API/文档等。内部而言&#xff0c;MetaGPT 包含产品经理/架构师/项目经理/工程师等角色。它为软件…

树目标、抓过程、要结果

一个好的管理理念不会因为一两个成功案例而发扬&#xff0c;一定是有无数个案例验证了它的价值所在&#xff0c;既然OKR在国外已经取得成功&#xff0c;那么国内依然如此。那么OKR这么成功&#xff0c;它到底好在哪呢&#xff1f; 一、OKR是连接企业战略和落地执行的最佳方式。…

ftp服务

1.什么是FTP FTP&#xff08;文件传输协议&#xff09;是典型的C/S架构的应用层协议&#xff0c;需要由服务端软件、客户端软件两个部分共同实现文件传输功能。FTP客户端和服务器之间的连接是可靠的&#xff0c;面向连接的&#xff0c;为数据的传输提供了可靠的保证。tcp协议&a…

1.2 如何让机器说人话?万字长文回顾自然语言处理(NLP)的前世今生 —— 《带你自学大语言模型》系列

本系列目录 《带你自学大语言模型》系列部分目录及计划&#xff0c;完整版目录见&#xff1a;带你自学大语言模型系列 —— 前言 第一部分 走进大语言模型&#xff08;科普向&#xff09; 第一章 走进大语言模型 1.1 从图灵机到GPT&#xff0c;人工智能经历了什么&#xff1…

【3GPP核心网】【5G】精讲5G核心网系统架构主要特征

目录 前言 1. 5G核心网系统架构主要特征 1.1 5G核心网与4G核心网EPC区别 1.2 5G核心网系统架构主要特征 2. 5G网络逻辑架构 2.1 新型基础设施平台 2.2 逻辑架构 前言 首先需要理解核心网的角色定位&#xff0c;作为移动通信网络的核心部分&#xff0c;核心网起着承上启下的作用…

阶段三:项目开发---大数据开发运行环境搭建:任务3:安装配置Hadoop集群

任务描述 知识点&#xff1a;安装配置Hadoop 重 点&#xff1a; 安装配置Hadoop 难 点&#xff1a;无 内 容&#xff1a; Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下&#xff0c;开发分布式程序。充分利用集群的威…

JS进阶-作用域

学习目标&#xff1a; 掌握作用域 学习内容&#xff1a; 作用域局部作用域全局作用域作用域链JS垃圾回收机制拓展-JS垃圾回收机制-算法说明闭包变量提升 作用域&#xff1a; 作用域规定了变量能够被访问的"范围"&#xff0c;离开了这个"范围"变量便不能被…

批量爬取B站网络视频信息

使用XPath爬取B站视频链接等相关信息 分析B站html框架获取内容完整代码 对于B站&#xff0c;目前网上的爬虫大多都是使用通过解析服务器的响应来爬取想要的内容&#xff0c;下面我们通过使用XPath来爬取B站上一些想要的信息 此次任务我们需要对B站搜索到的关键字&#xff0c;并…

本地多卡(3090)部署通义千问Qwen2-72B大模型提速实践:从龟速到够用

最近在做文本风格转化&#xff0c;涉及千万token级别的文本。想用大模型转写&#xff0c;在线的模型一来涉及数据隐私&#xff0c;二来又不想先垫钱再找报销。本地的7-9B小模型又感觉效果有限&#xff0c;正好实验室给俺配了4卡3090的机子&#xff0c;反正也就是做个推理&#…

Python falsk 接口挂载 步骤

Python falsk 接口挂载 步骤 1.首先要有自己独立的python环境&#xff0c;因为如果和别人共用环境的话&#xff0c;会有依赖包冲突的情况 2.找到python.exe的安装路径 3.CMD切换到该路径下 4.执行指令activate,进入到专属的python环境 5.然后执行指令 pip freeze > re.tet…

CentOS 7遗忘了root密码怎么办?

正文共&#xff1a;666 字 12 图&#xff0c;预估阅读时间&#xff1a;1 分钟 说来也巧&#xff0c;突然发现使用KVM在部署CentOS时&#xff08;笔记本电脑安装CentOS系统&#xff09;&#xff0c;会有一个神奇的现象&#xff0c;还不是偶然出现的&#xff0c;在最近的三四次部…

【ComfyUI节点】扰动注意力引导Perturbed Attention Guidance

扰动注意力引导 Perturbed Attention Guidance GitHub - KU-CVLAB/Perturbed-Attention-Guidance: Official implementation of "Perturbed-Attention Guidance" 按照官方介绍&#xff0c;扰动注意力指导显著提高了扩散模型的样本质量&#xff0c;而无需外部条件&am…