1、文件的类型

文件的理解

文件是数据的抽象和集合

- 文件是存储在辅助存储器上的数据序列
         - 文件是数据存储的一种形式

         - 文件展现形态:文本文件和二进制文件

  (2)、 文本文件与二进制文件   

- 文件文件和二进制文件只是文件的展示方式
         - 本质上,所有文件都是二进制形式存储
         - 形式上, 所有文件采用两种方式展示

- 由单一特定编码组成的文件,如UTF-8编码
         - 由于存在编码,也被看成是存储着的长字符串

         - 适用于例如: .txt文件、 .py文件等

- 直接由比特0和1组成, 没有统一字符编码
         - 一般存在二进制0和1的组织结构,即文件格式

         - 适用于例如: .png文件、 .avi文件等

         示例:

des java python 加密解密 python文件_二进制文件

2、文件的打开和关闭

文件处理的步骤: 打开-操作-关闭

des java python 加密解密 python文件_字符串_02

  (2)、文件的打开

des java python 加密解密 python文件_字符串_03

  (3)、文件路径

des java python 加密解密 python文件_字符串_04

  (4)、打开模式


文件的打开模式

描述

'r'

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

'w'

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

'x'

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

'a'

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

'b'

二进制文件模式

't'

文本文件模式,默认值

'+'

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

示例:

des java python 加密解密 python文件_字符串_05

  (5)、文件的关闭

des java python 加密解密 python文件_二进制文件_06


3、文件内容的读取

  (1)、读取方法

操作方法

描述

<f>.read(size=-1)

读入全部内容,如果给出参数,读入前size长度

>>>s = f.read(2)

中国

<f>.readline(size=-1)

读入一行内容,如果给出参数,读入该行前size长度

>>>s = f.readline()

中国是一个伟大的国家


操作方法

描述

<f>.readlines(hint=-1)

读入文件所有行,以每行为元素形成列表

如果给出参数,读入前hint行

>>>s = f.readlines()

['中国是一个伟大的国家! ']

  (2)、文件的全文本操作

         遍历全文本,方法1:

      

des java python 加密解密 python文件_字符串_07

遍历全文本,方法2:

     

des java python 加密解密 python文件_字符串_08

         逐行遍历文件,方法1:

      

des java python 加密解密 python文件_操作方法_09

         逐行遍历文件,方法2:

       

des java python 加密解密 python文件_操作方法_10

4、数据的文件写入

  (1)、写入方法

操作方法

描述

<f>.write(s)

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

>>>f.write("中国是一个伟大的国家!")

<f>.writelines(lines)

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

>>>ls = ["中国", "法国", "美国"]

>>>f.writelines(ls)

中国法国美国

操作方法

描述

<f>.seek(offset)

改变当前文件操作指针的位置, offset含义如下:

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

>>>f.seek(0) #回到文件开头

  (2)、例子比较,体会seek方法的作用

des java python 加密解密 python文件_字符串_11

des java python 加密解密 python文件_操作方法_12

         代码1中向文件中写入字符后,指针在文件末尾,因此输出不了内容;

         代码2中将指针重新指向文件开头,因此可以打印出写入的内容。