Python进阶复习-文件与异常

news2024/11/24 12:26:31

目录

  • 文件打开
    • 文件路径
    • 打开模式
    • 字符编码
  • 文件读取
    • 逐行读取
    • 读取所有行
  • 文件写入
  • 既读又写
  • 两种数据存储结构
    • csv文件
    • json文件
  • 程序异常
    • Exception万能捕捉

文件打开

文件路径

  • 完整路径
with open("E:\hello.txt", "r", encoding="UTF-8") as file:
    content = file.read()  
    print(content)

打开模式

  1. ‘r’: 只读模式。打开文件后只能读取文件的内容,不能修改文件。如果文件不存在,抛出 FileNotFoundError 异常。
  2. ‘w’: 写入模式。打开文件后只能向文件中写入内容,如果文件存在,则会覆盖原有内容。如果文件不存在,则会创建一个新文件。如果以文本模式打开文件,则会自动将换行符 ‘\n’ 转换为操作系统的换行符。如果文件已经存在,则打开文件时截断文件为零长度,相当于删除文件中所有内容。
  3. ‘a’: 追加模式。打开文件后只能向文件中追加内容,不能修改文件。如果文件不存在,则会创建一个新文件。
  4. ‘x’: 独占创建模式。用于创建新文件,如果文件已经存在,会抛出 FileExistsError 异常。
  5. ‘b’: 二进制模式。打开文件时,以二进制模式处理文件内容,适用于非文本文件,如图片、视频等。 不单独使用。不需要指定encoding模式。
  6. ‘t’: 文本模式。打开文件时,以文本模式处理文件内容,适用于文本文件。 一般省略不写。
  7. ‘+’: 读写模式。打开文件后既可以读取文件内容,也可以向文件中写入内容。

这些模式可以组合使用,例如 ‘rb’ 表示以二进制模式读取文件,‘w+’ 表示以读写模式打开文件。

字符编码

  1. ASCII:用于英文字符的编码,包含128个字符。
  2. Unicode:通用的字符编码方式,包含世界上所有语言的字符,常用于处理多语言文本。
  3. UTF-8:一种可变长字符编码方式,支持Unicode字符集,广泛应用于互联网和编程中。包含全世界所有国家需要的字符。
  4. GBK:用于中文字符的编码,包含简体中文和繁体中文字符。
  5. BIG5:用于繁体中文字符的编码。

文件读取

逐行读取

with open("E:\hello.txt", "r", encoding="UTF-8") as file:
    for i in range(3):
        print(file.readline())  

在这里插入图片描述

读取所有行

with open("E:\hello.txt", "r", encoding="UTF-8") as file:
    text=file.readlines()
    print(text)
['hello world\n', 'this is a file\n', 'for my study']

文件写入

  • "w"模式
  • "a"模式
  • file.writelines()函数

既读又写

  • "r+"模式:文件名不存在则报错。写之前需要人为把指针移到末尾再开始写。
with open("E:\hello.txt", "r+", encoding="UTF-8") as f:
#     for line in f:
#         print(line)   # 全部读一遍后,指针到达结尾
    f.seek(0,2)         # 或者可以将指针移到末尾f.seek(偏移字节数,位置(0:开始;1:当前位置;2:结尾))
    text = ["第四行,\n", "第五行\n"]
    f.writelines(text)
  • "w+"模式:文件不存在会创建新文件。文件存在,立刻清空原内容。读取前记得需要人为把指针移到最开始的位置。
with open("E:\hello.txt", "w+", encoding="UTF-8") as f:
    text = ["新的第一行\n", "新的第二行\n"]  # 清空原内容
    f.writelines(text)                             # 写入新内容,指针在最后
    f.seek(0,0)            # 指针移到开始
    print(f.read())        # 读取内容
  • "a+"模式:文件不存在会创建新文件。文件存在,不会清空原内容。读取前记得需要人为把指针移到最开始的位置。
with open("E:\hello.txt", "a+", encoding="UTF-8") as f:
    text = ["新的第三行\n", "新的第四行\n"]  
    f.writelines(text)                             # 指针在最后,追加新内容, 
    f.seek(0,0)            # 指针移到开始
    print(f.read())        # 读取内容

两种数据存储结构

csv文件

  • 由逗号将数据分开的字符序列,可以由excel打开

json文件

  • 存储字典类型的数据
  • dump()写入
  • load()读取

程序异常

Exception万能捕捉

ls = []
d = {"name": "mybaby"}
try:
    y = m
except Exception as e:    # 虽不能获得错误具体类型,但可以获得错误的值
    print(e)

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

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

相关文章

Socks5与HTTP的区别与应用场景

在网络访问中,代理服务器扮演着重要角色,用于保护用户隐私、提高访问速度等。Socks5代理和HTTP代理是两种常见的代理协议,它们在功能和应用场景上有所不同。本文将深入解析Socks5代理和HTTP代理的区别,帮助您更好地了解并选择适合…

Linux 信号捕捉函数 signal sigaction

signal函数 #include <signal.h> typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler); 功能&#xff1a;设置某个信号的捕捉行为 参数&#xff1a; -signum&#xff1a;要捕捉的信号 handler&#xff1a;对捕捉到的信号怎么处理…

安装了多个版本VS导致无法安装vsix

如&#xff0c;先后安装了VS2015、VS2019&#xff0c;现在想给VS2015安装一个qt-vsaddin插件&#xff0c;运行vsix报错 “View Install Log”里显示 2023/9/19 10:03:46 - 正在搜索适用的产品... 2023/9/19 10:03:46 - 找到的已安装产品 - Microsoft Visual Studio Ultimate …

中标麒麟--国产操作系统-九五小庞

那么&#xff0c;我国国产操作系统现状到底如何呢&#xff1f; 自 1999 年徐冠华部长一语点破我们的产业软肋之后&#xff0c;国产操作系统起步于国家“七五”计划期间&#xff0c;目前国产操作系统均是基于Linux内核进行的二次开发&#xff0c;中国国产操作系统进入Linux元年…

多线程详解(上)

文章目录 一、线程的概念1&#xff09;线程是什么2&#xff09;为甚要有线程&#xff08;1&#xff09;“并发编程”成为“刚需”&#xff08;2&#xff09;在并发编程中, 线程比进程更轻量. 3&#xff09;线程和进程的区别 二、Thread的使用1&#xff09;线程的创建继承Thread…

【随想】每日两题Day.7

题目&#xff1a;面试题 02.07.链表相交 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 …

Excel中的宏、VBA

一、宏是什么&#xff1f; EXCEL MACRO 是一种记录和播放工具&#xff0c;它仅记录您的 Excel 步骤&#xff0c;并且宏将根据需要播放任意多次。 VBA 宏可自动执行重复任务&#xff0c;从而节省了时间。 这是一段可在 Excel 环境中运行的编程代码&#xff0c;但您无需成为编码…

EtherCAT 总线型 4 轴电机控制卡解决方案

 技术特点  支持标准 100M/s 带宽全双工 EtherCAT 总线网络接口及 CoE 通信协议一 进一出&#xff08;RJ45 接口&#xff09;&#xff0c;支持多组动态 PDO 分组和对象字典的自动映射&#xff0c;支持站 号 ID 的自动设置与保存&#xff0c;支持 SDO 的电机参数设置与…

设计模式之解析器(Interpreter)的C++实现

1、解析模式的提出 在软件开发的过程中&#xff0c;需要实现一种需求&#xff0c;该需求的结构稳定&#xff0c;但是需求的业务内容会频繁变化&#xff0c;如果使用普通语法实现需求&#xff0c;需要经常更新代码&#xff0c;不具有灵活性。可以使用解析器模式解决实现该类需求…

css花字效果

<div data-subtitle"春江潮水连海平" class"colorText">春江潮水连海平</div>.colorText{font-family:ZhanKuKuaiLeTi2016XiuDingBan;font-size: 50px;font-weight: bold;position: relative;background-image: linear-gradient(90deg,#A1B3FB…

同步 -- 自旋锁

基础学习--原子操作 typedef struct {int counter; } atomic_t;static __always_inline void atomic_set(atomic_t *v, int i) {instrument_atomic_write(v, sizeof(*v));raw_atomic_set(v, i); }static __always_inline void raw_atomic_set(atomic_t *v, int i) {arch_atomic…

集丰照明|别墅设计:从空间规划到奢华元素的精心打造

当人们谈论别墅时&#xff0c;总会不自觉地与豪华、舒适、私人空间等词汇联系在一起。确实&#xff0c;别墅作为一种住宅形式&#xff0c;其设计不仅需要满足基本的生活需求&#xff0c;更要有独特的风格和品味。本文将从别墅设计的各个方面进行探讨&#xff0c;带您领略从空间…

uni-app:通过三目运算动态增加样式效果(class)

效果 代码 第一条&#xff1a;当变量line的值等于abc时&#xff0c;class就等于yes,反之class等于no&#xff08;显然等于abc&#xff0c;执行yes,前景色为红色&#xff09; 第一条&#xff1a;当变量line1的值等于abc时&#xff0c;class就等于yes,反之class等于no&#xff…

【实验】H3C校园双出口配置案例,可跟做!

【微|信|公|众|号&#xff1a;厦门微思网络】 1.案例拓补 该拓扑图中的校园网内部分为两个网段&#xff1a;一个为学生校舍网段&#xff08;192.168.2.0&#xff09;&#xff0c;主要访问电信提供的internet服务器&#xff1b;另外一个网段为校园办公和教学用网段&#xff08;…

python 第一次作业

1.使用turtle换一个五环 2.设计这样一个程序&#xff1a;输入一个数字 判断它是不是一个质数 使用turtle换一个五环&#xff1a; >>> import turtle #导入模块 >>> turtle.width(10) #设置圆圈宽度 >>> turtle.color("blue&qu…

DC电源模块具有不同的安装方式和安全规范

BOSHIDA DC电源模块具有不同的安装方式和安全规范 DC电源模块是将低压直流电转换为需要的输出电压的装置。它们广泛应用于各种领域和行业&#xff0c;如通信、医疗、工业、家用电器等。安装DC电源模块应严格按照相关的安全规范进行&#xff0c;以确保其正常运行和安全使用。 D…

快速上手Linux基础开发工具

目录 软件包管理器 概念理解 用法示例 - 以yum为例 vim 模式的切换 常用操作 插件和配置 gcc/g gdb make / makefile 软件包管理器 概念理解 在Linux下安装软件的话&#xff0c;一个比较原始的办法是下载程序的源代码&#xff0c;然后进行编译&#xff0c;进而得到…

vscode 无法使用 compilerPath“D:.../bin/arm-none-eabi-g++.exe”解析配置。

最近在使用vscode搭建ODrive STM32开发环境,依次安装了以下内容: 1.Python3: 用于运行工程构建脚本 2.ST-Link/V2 Drivers: STLink/v2编程器的驱动 3.Visual Studio Code: 轻量级但功能强大的源代码编辑器 …

Python的简单使用与应用

在当今互联网时代&#xff0c;网络爬虫成为了获取数据的重要工具之一。而使用代理IP进行爬虫操作&#xff0c;则是提高爬虫效率、绕过访问限制的利器。本文将向大家介绍Python代理IP爬虫的简单使用&#xff0c;帮助大家了解代理IP的原理、获取代理IP的方法&#xff0c;并探索其…

花了一周时间,更新了下软考云题库Web版

花了一周时间&#xff0c;更新了下软考云题库Web版&#xff0c;体验地址和体验账户在文章最后。想体验的直接翻到最后。 软考云题库的Web版的由来 之前&#xff0c;有朋友提出在小程序中刷题不太方便&#xff0c;希望能在电脑上进行题目练习。于是&#xff0c;我们着手开发了…