目录

  • 单元1  初识Python
    • ● 任务 1.1  计算机程序设计语言概述
    • ● 任务 1.2 Python语言
    • ● 任务1.3 Python开发环境搭建
    • ● 任务 1.4 Python的简单使用
    • ● 知识拓展
    • ● 思考与练习
  • 单元2   Python基础知识
    • ● 任务2.1 Python程序基本结构
    • ● 任务2.2  标准输入输出
    • ● 任务2.3  Python对象
    • ● 任务2.4 Python变量
    • ● 任务2.5  数据类型
    • ● 任务2.6 字符串
    • ● 任务2.7 运算符
    • ● 知识拓展
    • ● 思考与练习
  • 单元3   程序流程控制
    • ● 任务3.1  顺序结构
    • ● 任务3.2 选择结构
    • ● 任务3.3  循环结构
    • ● 知识拓展
    • ● 思考与练习
  • 单元4  Python序列
    • ● 任务4.1  序列
    • ● 任务4.2 列表
    • ● 任务4.3  用于序列操作的常用内置函数
    • ● 任务4.4   元组
    • ● 任务4.5  字典
    • ● 任务4.6  集合
    • ● 知识拓展
    • ● 思考与练习
  • 单元5  函数
    • ● 任务5.1 函数的定义与调用
    • ● 任务5.2 函数的参数
    • ● 任务5.3   参数类型
    • ● 任务5.4  变量作用域
    • ● 任务5.5   嵌套调用与递归调用
    • ● 任务5.6  lambda表达式
    • ● 任务5.7  模块
    • ● 知识拓展
    • ● 思考与练习
  • 单元6  异常处理
    • ● 任务6.1 异常处理的基本概念
    • ● 任务6.2 Python的异常处理语句
    • ● 任务6.3  自定义异常
    • ● 知识扩展
    • ● 思考与练习
  • 单元7  文件操作
    • ● 任务7.1  文件的分类
    • ● 任务7.2  文件对象
    • ● 任务7.3  文本文件
    • ● 任务7.4  二进制文件
    • ● 知识拓展
    • ● 思考与练习
  • 单元8  面向对象程序设计
    • ● 任务8.1 面向对象技术的基本概念
    • ● 任务8.2 类与对象
    • ● 任务8.3 类的继承
    • ● 任务8.4 方法重写
    • ● 知识扩展
    • ● 思考与练习
  • 单元9  网络编程基础
    • ● 任务9.1  Socket概述
    • ● 任务9.2   Socket对象内建方法
    • ● 任务9.3  Socket编程实例
    • ● 任务9.4    PythonInternet模块
    • ● 知识扩展
    • ● 思考与练习
  • 单元10    Python标准库及第三方库
    • ● 任务10.1 Python标准库
    • ● 任务10.2 Python第三方库的下载及安装
    • ● 任务10.3  Python第三方库举例
    • ● 知识扩展
    • ● 思考与练习
  • 任务11 用户图形界面(GUI)
    • ● 任务11.1 图形用户界面概述
    • ● 任务11.2 窗体容器和组件
    • ● 任务11.3 界面布局管理
    • ● 任务11.4 文本框组件
    • ● 任务11.5 其他组件
    • ● 任务11.6菜单与对话框
    • ● 任务11.7 鼠标键盘事件
    • ● 知识扩展
    • ● 思考与练习
  • 任务12   Python操作数据库
    • ● 数据库基础
    • ● 结构化查询语言SQL
    • ● Python操作数据库核心API
    • ● Python操作数据库案例
    • ● sqlite3 实训练习案例
    • ● pymysql 数据库实训案例
    • ● 小结  思考与练习
  • 习题解析(线上作业等参考解答)
    • ● 第一单元 初识Python  作业
    • ● 第二单元  Python基础(作业)
    • ● 第三单元  程序流程控制 作业(1)
    • ● 第三单元  程序流程控制  作业(2)
    • ● 第四单元  Python序列   作业
    • ● 第五单元   函数   作业
    • ● 单元六  异常处理  作业
    • ● 单元七、八  文件操作,GUI,面向对象
    • ● 单元九   网络编程基础
    • ● 线上习题解析
    • ● 编程训练
  • 应用题解(综合编程技术)
    • ● 《食品识别小专家》
    • ● 格式输出
    • ● 习题选解
    • ● 每日一帖
    • ● 模拟基本信息
    • ● 模拟基本数据
    • ● 数制转换
    • ● 定制每日运动计划
    • ● 《简易购物系统》
  • 课程章节测验
    • ● 第1次章节测验
  • 复习
    • ● Python基础知识总结
  • 第三方库TOOLS(备用)
    • ● 库模块(可下载)
    • ● 供考查备用的库模块(可下载)
任务7.1  文件的分类

文件:存储在某种介质上的信息集合

存储:外部存储介质(硬盘)

识别:文件名

分类

存取方式:顺序存取,随机存取

文件内容表示方式:二进制文件,文本文件

文件是操作系统和用户进行数据管理的单位。文件一般存储在外部介质上,在使用时将文件调入内存。在程序中使用文件可以实现数据的输入和输出,长久保存程序的中间数据和结果数据,实现程序与数据的分离。

根据文件的编码方式,可以将文件分为文本文件和二进制文件。文本文件由字符组成,因此也便于显示,可读性强。二进制文件将数据以在内存中的存储形式存放到磁盘文件中。

1)用二进制形式输出时:可节省外存空间和转换时间,一个字节并不对应一个字符,不能直接输出字符形式。可读性差,常用于保存中间结果数据和运行程序。

2)文本形式输出时:一个字节与一个字符一一对应,便于对字符进行逐个处理,也便于输出字符;占存储空间较多;要花费转换时间。

Python中可以处理二进制文件以及文本文件,对二进制文件的操作可以选择是否使用缓冲区,文本文件均使用缓冲区处理。

缓冲区是内存中的区域,由于内存与内存之间的数据交换比内存与外存储器之间的数据交换速度快,因此当程序中需要进行频繁的文件读写操作时,使用缓冲区可以减少I/O操作从而提高效率,也方便管理。

(1)打开文件

Python通过open函数用来打开文件,提供了初始化输入/输出(I/O)操作的通用接口。open()内建函数成功打开文件后会返回一个文件对象,否则引发一个错误。当操作失败,Python会产生一个IOError异常。

Open函数打开文件语法如下:

fp = open(file, mode='r', buffering=-1)

文件名的路径:

DOS和Windows下,路径分隔符用“\\”或用“r”指明为原始字符串,如“d:\\f.txt”或“r'd:\f.txt”

Linux和Mac系统中,路径用“/”分隔,如“/User/DZ/data”

“/”也可以在Windows中作为路径分隔符用

open()函数-mode参数

Mode

Function

 以读模式打开,文件必须存在

w

 以写模式打开,若文件不存在则新建文件,否则清空原内容

x

 以写模式打开,若文件已经存在则失败

a

 以追加模式打开,若文件存在则向结尾追加内容,否则新建文件

b

 以二进制模式打开,可添加到其他模式中使用

t

 以文本模式打开(默认),可添加到其他模式中使用

+

 以读/写模式打开,可添加到其他模式中使用

格式:fp = open(file, mode='r', buffering=-1)

mode为可选参数,默认值为“r”

buffering也为可选参数,默认值为-1,用于设置缓冲策略的可选整数

其他常用参数:encoding(指定编码字符集)

open()函数返回一个文件(file)对象

默认状态是以'r'与't'模式打开。

>>> fp = open('a.txt')

>>> fp = open('record.data' , 'wb')

文件打开模式:

Mode

Function

r+

 以读写模式打开,必须打开已经存在的文件,读写从头部开始

w+

 以读写模式打开,新建或是清空原内容,读的内容为新写入内容

a+

 以读和追加模式打开,若打开已经存在的文件,读写从尾部开始

wb

 以二进制写模式打开(参见w)

rb+

 以二进制读写模式打开(参见r+),可写成rb+、r+b、+rb

wb+

 以二进制读写模式打开(参见w+)


标准文件

当程序启动后,以下三种标准文件有效

标准文件

文件对象

对应的设备

标准输入

stdin

键盘

标准输出

stdout

显示器

标准错误

stderr

显示器


(2)文件关闭

格式: fp.close()

fp为文件对象

关闭文件是打开文件的逆操作,切断文件对象与外存储器中文件之间的联系.

>>> fp = open(r'd:\nfile.txt', 'r')

>>> type(fp)

<class '_io.TextIOWrapper'>

>>> fp.name

'd:\\nfile.txt'

>>> fp.mode

'r'

>>> fp.closed

False

>>> fp.close()

>>> fp.closed

True

文件使用完后如果不关闭,则当程序运行结束时由系统自动关闭。

不建议使用系统自动关闭的原因:

操作系统允许程序同时打开的文件个数是有限的,

写入内容已处理完若缓冲区还未满,缓冲区的内容要等到程序运行结束时由系统自动关闭该文件后才能写出,此时若系统发生非正常情况当前缓冲区中的未写到外存储上的内容就可能丢失掉。