《Python程序设计》课件——第7讲 文件与数据格式化.pptx
第7讲文件与数据格式化(1);学习目标;本讲要点;7.1文件概述;文件:操作系统管理和存储数据的一种方式
文件标识:类似于程序中使用的变量,每个文件也有唯一确定的标识,以便识别和引用文件。
文件标识的组成:路径、主文件名、扩展名、路径分隔符
缺省路径名:当前目录下的文件标识符可以缺省路径名,如:file.txt,表示file.txt是与当前程序同一个目录下的文件。;
路径分隔符:Linux中使用/,Windows中使用\(也兼容/),由于Python中的\常用于转义字符,因此作为文件标识中路径分隔符时需要进行特殊处理:
(1)用转义字符\\来表示\;
(2)用/代替\;
(3)使用Raw字符串,格式为:rd:\test\newfile.txt,Raw字符串不解析转义字符,常用于文件标识;7.1文件概述;多学一招:标准文件;多学一招:标准文件;7.2文件的基础操作;7.2文件的基本操作;7.2.1文件的打开与关闭;7.2.1文件的打开与关闭;7.2.1文件的打开与关闭;7.2.1文件的打开与关闭;7.2.1文件的打开与关闭;7.2.1文件的打开与关闭;7.2.1文件的打开与关闭;为什么要及时关闭文件?;1.打开的文件占用系统资源;
2.操作系统为每个进程打开的文件数量是有限的;
3.关闭文件能将“写缓存”中的数据及时同步的磁盘,若程序因异常关闭,可能产生数据丢失。;7.2.2文件的读写;7.2.2文件的读写;7.2.2文件的读写;7.2.2文件的读写;7.2.2文件的读写;7.2.2文件的读写;7.2.2文件的读写;7.2.2文件的读写;多学一招:字符与编码;7.2.3文件的定位读写;文件指针——当前位置
在文件的一次打开与关闭之间进行的读写操作是连续的,程序总是从上次读写的位置继续向下进行读写操作。
每个文件对象都有一个称为“文件读写位置”的属性,该属性会记录当前读写的位置,也称文件指针
文件打开时读写位置默认为0,即在文件首部。;Python提供了一些获取与定位文件读写位置的方法,以实现文件的定位读写。
tell()——获取文件当前的读写位置。
seek()——定位文件的读写位置。;(6)tell()方法——返回文件当前的读写位置,以字节为单位,每个汉字占用几个字节与编码方式相关;seek(offset):将文件???针移动到第n+1个字节(注意中文汉字的定位异常)
offset:表示偏移量,即读写位置需要移动的字节数。
返回值:seek()方法调用成功后会返回当前读写位置;2.seek()方法;二进制文件读写与文本文件读写基本相同,不同之处在于:
(1)open()函数打开文件时,mode参数设置为rb、wb、ab、ab+、等,以二进制模式也可以打开文本文件,不能设置encoding参数;
(2)读写时均以字节为单位,读取返回值为bytes对象,写入的数据也必须是bytes对象;
(3)seek()方法可以相对于当前位置和文件尾设置偏移量。;二进制文件的写操作;seek(offset[,from]):将文件指针移动到第n+1个字节
offset:表示偏移量,即读写位置需要移动的字节数。
from:用于给offset定义一个参数,表示要从哪个位置开始偏移,可取值为0、1、2,默认为0,文本文件只能是0。
0:表示文件开头。
1:表示使用当前读写位置(二进制文件)。
2:表示文件末尾(二进制文件)。
返回值:seek()方法调用成功后会返回当前读写位置;seek()定位二进制文件:;7.3文件与目录管理;文件操作通常都会涉及到目录操作,对于用户而言,文件和目录以不同的形式展现,但对计算机而言,目录是一种特殊的文件,它存储当前目录中的子目录和文件的相关信息。
Python的os模块提供了目录操作的函数。利用这些函数可以实现文件删除、重命名,创建/删除目录、获取当前目录、更改默认目录、获取目录列表等操作。;管理文件与目录;7.3文件与目录管理;7.3文件与目录管理;7.4精彩实例;本实例要求编写程序,实现一个具备备份文件与文件夹功能的备份工具。
问题讨论:
1.如何实现文件复制?
读取原文件---写到目标文件
2.使用文本文件还是二进制文件形式?;7.4.1信息安全策略——文件备份;定义源文件复制函数:
backupfile(源文件,目标目录)
定义目录备份函数:
backup(源路径,目标目录)——递归函数,如果源路径是文件则是调用backupfile(),如果源路径是目录,则遍历它的子目录,对子目录文件递归复制
;本实例要求编写程序,实现用户注册、登录、修改密码、注销功能(要求程序使用文件存储用户的账户信息)。;7.4.2用户账户