目录

  • 1 安装Python环境
    • 1.1 Python开发环境安装
    • 1.2 开始了解一些语句编写小程序
    • 1.3 尝试更多的小程序
    • 1.4 试一试:开始自己编写程序(可选)
  • 2 变量与字符串
    • 2.1 变量
    • 2.2 输出
    • 2.3 字符串
    • 2.4 字符串常用方法
    • 2.5 案例一温度转换
    • 2.6 案例二turtle库
      • 2.6.1 turtle库基础知识
    • 2.7 实践与练习
  • 3 最基本的魔法函数
    • 3.1 重新认识函数
    • 3.2 开始创建函数
    • 3.3 练习题
    • 3.4 传递参数与参数类型
    • 3.5 案例:文本敏感词过滤器
  • 4 循环与判断
    • 4.1 程序的三种控制结构
    • 4.2 逻辑控制
      • 4.2.1 比较运算
      • 4.2.2 成员运算符与身份运算符
      • 4.2.3 布尔运算符
    • 4.3 条件控制
    • 4.4 循环
      • 4.4.1 for 循环
      • 4.4.2 while 循环
      • 4.4.3 练习题
    • 4.5 综合练习:制作小游戏
      • 4.5.1 设计思路
      • 4.5.2 编程实现
      • 4.5.3 练习题
    • 4.6 PS:程序的异常处理
  • 5 数据结构
    • 5.1 数据结构
    • 5.2 列表
    • 5.3 字典
    • 5.4 元组
    • 5.5 集合
    • 5.6 数据结构的一些技巧
    • 5.7 综合项目:词频统计
  • 6 文件和数据格式化
    • 6.1 文件的使用
    • 6.2 PIL库的使用--操作图像文件
    • 6.3 数据的格式化和处理
      • 6.3.1 一维数据的格式化和处理
      • 6.3.2 二维数据的格式化和处理
    • 6.4 实例:CSV格式的HTML展示
    • 6.5 高维数据的格式化和处理
      • 6.5.1 高维数据的格式化和处理
      • 6.5.2 json库的使用
    • 6.6 项目1制作英语学习词典
  • 7 开始使用第三方库
    • 7.1 令人惊叹的第三方库
    • 7.2 安装第三方库
      • 7.2.1 第三方库的安装
      • 7.2.2 实例:pip安装脚本
    • 7.3 使用第三方库
      • 7.3.1 实例:文本词频统计
      • 7.3.2 案例:中文分词与词云统计
      • 7.3.3 案例:数据分析与可视化
  • 8 程序设计方法学
    • 8.1 自顶向下设计和自底向上执行测试
    • 8.2 pyinstaller库的使用--打包源文件
  • 9 2020校通识课程结业
  • 10 运算符、基本数据类型
    • 10.1 数值类型及其操作
    • 10.2 math库函数
    • 10.3 案例学习:天天向上的力量
    • 10.4 第四周作业
    • 10.5 字符串类型及其操作
    • 10.6 案例学习:文本进度条
  • 11 Python综合设计实验一
    • 11.1 Python基本操作
    • 11.2 课堂实战练习
  • 12 程序控制结构
    • 12.1 分支结构(选择结构)
    • 12.2 循环结构
    • 12.3 程序的异常处理
    • 12.4 random库的使用
  • 13 函数和代码复用
    • 13.1 函数的定义与调用
    • 13.2 函数参数传递
    • 13.3 模块化编程-通过函数复用
    • 13.4 datetime库的使用
    • 13.5 案例:七段数码管绘制
    • 13.6 函数的递归
    • 13.7 案例:科赫曲线(雪花)的绘制
  • 14 组合数据类型
    • 14.1 组合数据类型概述
    • 14.2 列表类型与操作
    • 14.3 实例:基本统计值计算
    • 14.4 字典类型和操作
    • 14.5 实例:Python之禅
  • 15 类和可口可乐
    • 15.1 定义类
    • 15.2 类的实例化
    • 15.3 类属性引用
    • 15.4 实例属性
    • 15.5 实例方法
    • 15.6 魔术方法
    • 15.7 类的继承
    • 15.8 类的扩展理解
    • 15.9 类的实践
  • 16 网络爬虫方向和自动化
    • 16.1 网络爬虫
    • 16.2 玫瑰花的绘制
  • 17 课程项目设计与实现
    • 17.1 下载项目文档
    • 17.2 参考案例学习
    • 17.3 项目实现步骤
    • 17.4 学习资源
文件的使用
  • 1 文件的使用
  • 2 示例:文件的写-读...

文件的使用

       文件是一个存储在辅助存储器(如硬盘等)上的数据集合,它可以包含任何数据内容。用文件形式组织和表达数据更为有效更为灵活。

      文件包括两件类型:文本文件和二进制文件。 文本文件一般由单一特定编码的字符组成,如UTF-8编码,内容容易统一展示和阅读。文本文件可以看作为长字符串,例如.txt的文本文件。二进制文件没有统一的字符编码,文件内部数据的组织格式多样,例如,.png图像文件、.avi视频文件。二进制文件不能看作是字符串,只能当作字节流。

       Python操作文件的步骤是统一的,即“打开-操作-关闭”。 文件默认处于存储状态,首先需要将其打开,才有权操作该文件。若该文件不存在,可以创建文件。在Python中文件的打开可以有7个,如表1:

表1 文件的打开模式

打开模式(mode)

含义

'r'

只读模式,如果文件不存在,返回异常FileNotFoundError,默认值

'w'

覆盖写模式,文件不存在则创建,存在则完全覆盖源文件

'x'

创建写模式,文件不存在则创建,存在则返回异常FileExistsError

'a'

追加写模式,文件不存在则创建,存在则在原文件最后追加内容

'b'

二进制文件模式

't'

文本文件模式,默认值

'+'

与r/w/x/a一同使用,在原功能基础上增加同时读写功能


Python通过内置的open()函数打开一个文件,并实现文件与一个变量的关联,其格式如下:

                  <变量名> = open(<文件名>,<打开模式>)

       文件名包括了文件的路径与具体文件名。例如“D:/pythonFiles/hqu.txt"表示D盘pythonFiles目录下的hqu.txt文件;"app.txt"表示当前目录下的文件app.txt

txtFile=open("D:/hqu.txt",'r')   或 txtFile=open("D:/hqu.txt")   #表示以读的方式打开文件

txtFile=open("D:/hqu.txt",'w')  #以写的方式打开,若文件存在,原内容将会被覆盖,若文件不存在则创建

txtFile=open("D:/hqu.txt",'a') #写方式,若文件存在,则是尾部添加,文件不存在则创建

binFile=open('music.mp3', 'rb') #读取一个音频文件,(二进制文件,如图片,视频,音频,需要使用文件打开模式'rb'。



   文件通过读或写方式完成文件操作后,要关闭文件,其方法是:

                  <变量名>.close()

    例如,txtFile.close(), binFile.close()

那么在占有文件期间(打开之后,关闭之前),是如何对文件进行读和写操作的呢?

  1.文的读取


方法

含义

f.read(size=-1)

从文件中读入整个文件内容。参数可选,如果给出,读入前size长度的字符串或字节流

f.readline(size = -1)

从文件中读入一行内容。参数可选,如果给出,读入该行前size长度的字符串或字节流

f.readlines(hint=-1)

从文件中读入所有行,以每行为元素形成一个列表。参数可选,如果给出,读入hint行

f.seek(offset)

改变当前文件操作指针的位置,offset的值:

0:文件开头; 1:当前位置; 2: 文件结尾


例如,观察以下代码:

txtFile=open("D:/python/fruitEN.txt")

print(txtFile.read())

txtFile.close()


txtFile=open("D:/python/fruitEN.txt")

print(txtFile.readlines())         #注意readline是读一行,readlines是读全文件内容,每行为列表一个元素。

txtFile.close()


以上两段代码结果:

如果代码为:

txtFile=open("D:/python/fruitEN.txt")

print(txtFile.read())

print(txtFile.readlines())

txtFile.close()

运行结果,

为什么print(txtFile.readlines())仅输出空的列表呢?

    因为当执行open("D:/python/fruitEN.txt")时,相当于读文件的指示标(指针)在文件开始,当执行完print(txtFile.read())后,指针就移到了文件尾部。执行print(txtFile.readlines())时,指针处已经没有内容了,所以输出结果是空列表。

那怎样才可以让文件又从头开始读取呢?

     使用txtFile.seek(0)就可以将文件指针移到文件开头处。

txtFile=open("D:/python/fruitEN.txt")

print(txtFile.read())

txtFile.seek(0)

print(txtFile.readlines())

txtFile.close()


2.文件的写入

Python提供了文件内容写入的方法如下表:

方法

含义

f.write(s)

向文件写入一个字符串或字节流

f.writelines(lines)

将一个元素为字符串的列表写入文件

txtFile=open("D:/python/shici.txt","w")

txtFile.write('新年都未有芳华\n')

txtFile.write('二月初惊见草芽\n')

txtFile.write('白雪却嫌春色晚\n')

txtFile.write('故穿庭树作飞花\n')

txtFile.close()


运行后,在D盘目录python下产生shici.txt文件。

大家还可以使用文件打开模式中的“w+", "a",试试,并配合seek()方法。


此外,为更有效地使用文件,可以使用with语句,其语法如下:

  with  open(<文件名>,<打开模式>)  as  变量名

with open('D:/python/shici.txt', mode='w') as txtFile :   

        txtFile.write('新年都未有芳华\n')

        txtFile.write('二月初惊见草芽\n')

        txtFile.write('白雪却嫌春色晚\n')

        txtFile.write('故穿庭树作飞花\n')


这样运行完with 语句,自动关闭文件,而不需要等待close()方法来关闭文件,释放文件的占用。