零基础学 Python(2023 版)
尹会生
太乙人工智能技术合伙人 & 项目总监
60050 人已学习
新⼈⾸单¥68
课程目录
已完结/共 124 讲
结束语 & 结课测试 (2讲)
零基础学 Python(2023 版)
登录|注册
留言
8
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 48|再回首:“输入输出与文件操作”单元小结
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程介绍:这次我们都做了哪些升级?
内容综述:明确学习目的
01|如何配置 Python 开发环境?
02 | 常用 IDE:如何提高开发效率?
03 | 如何站在官方文档的肩膀上自己“造轮子”?
04 | 怎样运行你的第一行代码?
05 | 怎样使用 Gitee 管理你的代码?
06 | 学习编程有问题?去这里找答案!
07|跨越门槛:Python 开发环境总结及实现原理
08 | 修炼基本功:浅析输入输出
09 | 变量:如何让计算机临时存储数据?
10|字符串(上):Python 是如何处理单词的?
11|字符串(下):Python 是如何处理单词的?
12|存储数字应该采用哪种数据类型?
13|何时使用数,何时使用字符串?
14|注释:如何写程序的说明书?
15|小试牛刀:如何制作简单计算器?
16|变量命名规范:如何编写优雅的程序?
17|告别新手村:Python 编程基础知识
18|内置数据类型包括哪几种?
19|列表如何处理同类数据?
20|常见常新:列表的常见操作
21|元组:如何处理一次性数据?
22|常见常新:集合的常见操作
23|字典:如何处理映射类型的数据?
24|常见常新:字典的常见操作(上)
25|常见常新:字典的常见操作(下)
26|小试牛刀:如何利用类型转换实现手机通讯录?(上)
27|小试牛刀:如何利用类型转换实现手机通讯录?(下)
28|常见的内置数据类型都何时使用?
29|避坑指南:内置数据类型的常见错误
30|内置数据类型参考:如何使用官方文档与帮助?
31|再回首:“内置数据类型”单元小结
32|if 语句:数据流程出现分支时,怎样编写程序?
33|match 语句:如何通过 match 关键字来处理程序的分支逻辑?
34|while 循环:需要多次重复执行某段程序时,怎么做?
35|for 循环:如何遍历一个对象里的所有元素?
36|语句嵌套:如何处理多重循环的问题?
37|小试牛刀:如何设计一个飞机大战的程序?
38|避坑指南:判断和循环中的常见错误
39|再回首:“判断循环”单元小结
40|输入:如何接收用户通过键盘输入的数据?
41|格式化输出:如何将执行结果通过屏幕输出?
42|F-strings:如何通过定义好的格式进行输出?
43 | 常见常新:文件的打开
44|文件编码:如何解决不同操作系统的文件乱码问题?
45|常见常新:文件的读写
46|常见常新:文件的关闭
47|小试牛刀:如何使用 Python 合并多个文件?
48|再回首:“输入输出与文件操作”单元小结
49|函数的定义:如何优雅地反复引用同一段代码?
50|函数的参数:怎样实现函数与外部数据通信?
51|函数的参数:当函数操作对象不固定时怎么处理?
52|函数的返回值:如何得到函数的执行结果?
53|小试牛刀:如何利用函数实现电商购物车功能?
54|避坑指南:列表作为参数传递出错了怎么办?
55|高阶函数:函数对象与函数调用的用法区别
56|装饰器:函数嵌套的定义与调用的区别
57|再回首:“函数”单元小结
58|编程思想不同会导致怎样的代码差异?
59|类与实例:如何使用面向对象的思想编写程序?
60|类的继承:如何解决代码重用的问题?
61|类的装饰器:如何改变类方法的功能?
62|小试牛刀:如何开发自动咖啡机?
63|避坑指南:类的常见错误
64|init 方法:如何为对象传递参数?
65|再回首:“类”单元小结
66 | 模块的导入:如何使用其他人编写好的代码功能?
67 | 标准库:Python 默认提供的便捷功能有哪些?
68 | 自定义模块:如何编写一个完整功能?
69 | 第三方模块的使用:如何使用其他人编写的代码?
70 | 小试牛刀:如何使用 Python 为函数求导?
71|再回首:“模块与标准库”单元小结
72|初识异常:异常的产生与分类
73|异常捕获:出现异常时,如何利用程序进行处理?
74|自定义异常捕获:如何定义业务异常?
75|避坑指南:编写捕获异常程序时经常出现的问题
76|再回首:“异常处理”单元小结
77|扩展数据类型:怎样使用更复杂的数据类型?
78|魔术方法:怎样通过类构造自己需要的数据类型?
79|怎样将 Python 和 C++ 结合起来混合编程?
80|怎样将已有算法改造成符合项目的特定算法?
81|设计模式:怎样合理组合多个函数和类?
82|Redis 数据库:怎样使用 NoSQL 数据库?
83|关系型数据库:怎样使用关系型数据库?
84|计算资源充足时,如何通过并行设计提高效率?
85|多进程间如何通信?
86|再回首:“高级数据类型与算法”单元小结
87|理论盘点:数据分析的流程及对应的 Python 库
88|理论盘点:数据采集的方法与 HTTP 协议
89|理论盘点:任务的并行执行原理
90|理论盘点:非规范化数据处理的基础与正则表达式
91|如何获取网页上的数据并存储到文件?
92|小试牛刀:如何将数据进行图形化展示?
93|再回首:“数据分析”单元小结
94|理论盘点:文件类型与对应的 Python 函数库
95|如何批量读取 Excel 文件?
96|如何实现数据的批量格式转换?
97|如何扩展数据类型?
98|再回首:“办公自动化”单元小结
99|理论盘点:Web 客户端与服务端
100|理论盘点:MVC 模型是什么?
101|如何使用Django搭建简单的Web服务器?
102|如何使用Django-admin实现文章上传?
103|如何使用Django实现文章发布?
104|再回首:“Web开发”单元小结
105|理论盘点:人脸识别的一般步骤
106|理论盘点:人脸识别常用的 Python 库有哪些?
107|怎样通过 OpenCV 采集视频信号?
108|如何训练人脸模型?
109|怎样设计人脸识别系统?
110|再回首:“计算机视觉”单元小结
111|聚焦异同:物联网与互联网有啥不一样?
112|理论盘点:基础但不简单的 TCP 协议
113|理论盘点:物模型与模组
114|如何为 ESP32 安装 MicroPython?
115|怎样通过 MQTT 协议构建消息队列?
116|小试牛刀:在 OLED 屏幕和手机远程同时显示室内温度
117|再回首:“物联网”单元小结
118|结束语:人生苦短,我用Pyhon
结课测试|来赴一场满分之约吧!
直播加餐|与AI共同编程,用ChatGPT学Python
直播加餐|用OpenAI API理解Python数据类型
直播加餐|掌握Gradio框架:为 AI Agent 程序定制界面
本节摘要

你好,我是尹会生。

如果要用四个字来总结本章我为你讲解的主要内容的话,那肯定是“输入输出”。别看只有简单的四个字,里面包含的知识点可不少。

比如,在编写输入输出相关程序时,你要根据操作的对象,分为从终端输入输出和从文件输入输出;假如操作对象是文件的话,你还得考虑保存文件的文件夹是否存在;即使文件夹存在,你还要考虑是否有权限创建和写入文件;甚至在更底层的开发过程中,你要考虑写入文件时要使用缓存还是直接写入磁盘。

你看要编写一个支持输入和输出的程序,要考虑的东西真不少。在本章视频里,为了给你讲清楚每一个细节,我将它们都拆分开并为你讲解了涉及到的全部知识点,但是实际操作中,我们需要将它们都串联起来。在本讲中,我将为你展示一下,如何实现更完善的基于文件的输入和输出操作。

输入

首先,我先带你来看一下,一个程序如果使用文件作为输入系统要考虑的三件事:文件是否存在,文件是否有可读权限,使用正确的文件编码。

1. 文件是否存在

打开文件之前,判断文件是否存在,是成熟的软件工程师要养成的好习惯。虽然 Python 解释器在打开的文件不存在时,会自动报告 FileNotFoundError 异常,但是也会有报告不准确的时候,比如下面的代码,就是 Python 读取一个文件夹时的报错信息。

登录 后留言

全部留言(8)

  • 最新
  • 精选
yanyu-xin
1.检查准备创建文件的目录是否存在:没有则建立有全部权限的临时文件夹 2.检查目录是否需要管理员权限:提供管理员权限,否则另外创建有全部权限的临时文件夹 3.检查目录的属性是否可读写操作:不能读写操作,就另外创建有全部权限的临时文件夹 4.检查准备创建的文件是否存在:没有就生成临时文件 5.创建的文件是否有读取权限:临时文件要有读写权限 6.测试文件编码是否与操作系统一致:创建的临时文件编码与系统一致 7.创建完临时文件 8.使用临时文件后,删除临时文件 9.删除临时创立的文件夹

作者回复: 赞!

2023-01-30
3
760418
文件编码问题,长期困扰着 Python 开发的初学者,很多同学甚至为了研究透编码的定义和转换,下了一番苦功。其实编码问题对于日常开发来说,比你想的要简单,当你遇到编码和当前系统不一致的问题时,不需要通过各种复杂代码进行编码的转换,你只要“按照文件保存时指定的编码打开”即可。 即你使用的是 Windows 默认采用“GBK”编码,如果你要打开 macOS 系统编写的“UTF-8”编码的文件,你只需要将 open() 函数的 encoding 参数指定为“encoding=UTF8”,文件就能按照正确的编码识别文件了。切记不要再进行复杂的编码转换了,不然容易导致更多字符集不兼容问题。
2023-11-28
小昭
本章学完~ 最近工作事情繁琐,python学习又耽搁了不少,哎~~ 不过,过去的就让他过去,后面的时间我再努力💪
2023-09-22
不再是入门水平python的小宇
当程序在创建临时文件时遇到权限问题,我们可以采取以下措施来增强程序的健壮性和用户友好性: 1. **异常捕获**:使用 `try...except` 结构来捕获可能出现的文件相关的异常,如 `PermissionError`。 2. **日志记录**:在捕获到异常时,记录详细的错误日志,这样可以帮助开发人员诊断和修复问题。 3. **用户友好的错误提示**:为用户提供明确的、友好的错误消息,并给出建议的解决方法。 4. **提供备选方案**:例如,如果默认的临时文件目录不可写,程序可以尝试在其他位置创建临时文件,或者允许用户指定一个可写的目录。 5. **文档说明**:在程序或应用的文档中,明确说明程序需要哪些权限,以及为什么需要这些权限。 以下是一个示例,演示如何捕获权限错误并为用户提供友好的提示: ```python try: # 尝试创建临时文件 with open("temp_file.txt", "w") as f: f.write("Temporary data.") except PermissionError: print("错误:无法在当前目录创建临时文件,可能是因为权限不足。") print("建议:请确保您具有在当前目录写入文件的权限,或尝试以管理员身份运行此程序。") except Exception as e: print(f"发生了一个未知错误:{e}") ```
2023-09-02
Seven
1. 更改文件路径,选择当前用户有操作权限的路径. 提示用户更换可用的文件路径 2. 向管理员申请操作权限
2023-01-20
Matthew
当你编写的程序创建一个临时文件时出现了权限不足的问题,你会采用什么样的措施,保证程序的健壮性,你又将如何提示用户为程序正常运行提供正确的修改建议? ——在创建临时文件之前,要判断当前程序用户是否具有创建文件的权限,如果没有的话,则提示用户权限不足,需要先申请赋权。
2022-12-11
Matthew
当你编写的程序创建一个临时文件时出现了权限不足的问题,你会采用什么样的措施,保证程序的健壮性,你又将如何提示用户为程序正常运行提供正确的修改建议?
2022-12-11
On
契约式编程结构中的前置条件检测: 输入:文件是否存在;文件是否有可读取可写权限;判断编码格式、使用正确的编码打开。 输出:文件要保存的文件夹是否存在;如果文件夹不存在,如何创建文件夹。 当你编写的程序创建一个临时文件时出现了权限不足的问题,你会采用什么样的措施,保证程序的健壮性,你又将如何提示用户为程序正常运行提供正确的修改建议? ---请使用拥有足够权限的角色例如管理员权限(root/administrator)保证有足够的权限进行读、、创建、更新文件等的操作。
2022-12-08
收起评论