东莞最好的网站建设价格低,哪个公司做网站比较好,wordpress首页排版更换,网络设计及网络设计文档当程序运行时#xff0c;变量是保存数据的好方法#xff0c;但变量、序列以及对象中存储的数据是暂时的#xff0c;程序结束后就会丢失#xff0c;如果希望程序结束后数据仍然保持#xff0c;就需要将数据保存到文件中。Python 提供了内置的文件对象#xff0c;以及对文件…当程序运行时变量是保存数据的好方法但变量、序列以及对象中存储的数据是暂时的程序结束后就会丢失如果希望程序结束后数据仍然保持就需要将数据保存到文件中。Python 提供了内置的文件对象以及对文件、目录进行操作的内置模块通过这些技术可以很方便地将数据保存到文件如文本文件等中。一、文件的概念在计算机中文件是以二进制的方式保存在磁盘上的。文件分为文本文件和二进制文件。1、文本文件可以使用文本编辑软件查看本质上还是二进制文件例如python 的源程序。2、二进制文件保存的内容不是给人直接阅读的而是提供给其他软件使用的。例如图片文件、音频文件、视频文件等等二进制文件不能使用文本编辑软件查看。Python 中对文件的操作有很多种常见的操作包括创建、删除、修改权限、读取、写入等这些操作可大致分为以下 2 类删除、修改权限作用于文件本身属于系统级操作。写入、读取是文件最常用的操作作用于文件的内容属于应用级操作。二、文件的基本操作1、操作文件的步骤文件的应用级操作可以分为以下 3 步每一步都需要借助对应的函数实现打开文件使用 open() 函数该函数会返回一个文件对象对已打开文件做读/写操作读取文件内容可使用 read()、readline() 以及 readlines() 函数向文件中写入内容可以使用 write() 函数。关闭文件完成对文件的读/写操作之后最后需要关闭文件可以使用 close() 函数。2、打开文件的方式在 Python 中如果想要操作文件首先需要创建或者打开指定的文件并创建一个文件对象而这些工作可以通过内置的 open() 函数实现。语法如下file file表示要创建的文件对象。file_name要创建或打开文件的文件名称。mode用于指定文件的打开模式。默认以只读r模式打开文件。buffering用于指定对文件做读写操作时是否使用缓冲区。encoding手动设定打开文件时所使用的编码格式不同平台的 ecoding 参数值也不同以 Windows 为例其默认为 cp936实际上就是 GBK 编码。打开文件的常用模式模式说明以只读方式打开文件。文件的指针将会放在文件的开头这是默认模式。如果文件不存在抛出异常w以只写方式打开文件。如果文件存在会被覆盖。如果文件不存在创建新文件a以追加方式打开文件。如果该文件已存在文件指针将会放在文件的结尾。如果文件不存在创建新文件进行写入r以读写方式打开文件。文件的指针将会放在文件的开头。如果文件不存在抛出异常w以读写方式打开文件。如果文件存在会被覆盖。如果文件不存在创建新文件a以读写方式打开文件。如果该文件已存在文件指针将会放在文件的结尾。如果文件不存在创建新文件进行写入open()是否需要缓冲区通常情况下、建议大家在使用 open() 函数时打开缓冲区即不需要修改 buffing 参数的值。如果 buffing 参数的值为 0或者 False则表示在打开指定文件时不使用缓冲区如果 buffing 参数值为大于 1 的整数该整数用于指定缓冲区的大小单位是字节如果 buffing 参数的值为负数则代表使用默认的缓冲区大小。目前为止计算机内存的 I/O 速度仍远远高于计算机外设例如键盘、鼠标、硬盘等的 I/O 速度如果不使用缓冲区则程序在执行 I/O 操作时内存和外设就必须进行同步读写操作也就是说内存必须等待外设输入输出一个字节之后才能再次输出输入一个字节。这意味着内存中的程序大部分时间都处于等待状态。而如果使用缓冲区则程序在执行输出操作时会先将所有数据都输出到缓冲区中然后继续执行其它操作缓冲区中的数据会有外设自行读取处理同样当程序执行输入操作时会先等外设将数据读入缓冲区中无需同外设做同步读写操作。3、read 方法 —— 读取文件read 方法可以一次性读入并返回文件的所有内容。read() 函数的基本语法格式如下file其中file 表示已打开的文件对象size 作为一个可选参数用于指定一次最多可读取的字符字节个数如果省略则默认一次性读取所有内容。如果忘记关闭文件会造成系统资源消耗而且会影响到后续对文件的访问。注意read 方法执行后会把文件指针移动到文件的末尾。示例# 1. 打开 - 文件名需要注意大小写
在开发中通常会先编写打开和关闭的代码再编写中间针对文件的读/写操作4、按行读取文件内容read 方法默认会把文件的所有内容一次性读取到内存。如果文件太大对内存的占用会非常严重。readline 方法可以一次读取一行内容包含最后的换行符“n”。方法执行后会把文件指针移动到下一行准备再次读取。file其中file 为打开的文件对象size 为可选参数用于指定读取每一行时一次最多读取的字符字节数。读取大文件的正确姿势# 打开文件
示例小文件复制# 1. 打开文件
大文件复制# 1. 打开文件
对于按行来读取文件还有一个 readlines() 函数。readlines() 函数用于读取文件中的所有行它和调用不指定 size 参数的 read() 函数类似只不过该函数返回是一个字符串列表其中每个元素为文件中的一行内容。和 readline() 函数一样readlines() 函数在读取每一行时会连同行尾的换行符一块读取。5、文件指针文件指针可以理解为一个标记它标记从哪个位置开始读取数据。第一次打开文件时通常文件指针会指向文件的开始位置当执行了 read 方法后文件指针默认情况下会移动到读取内容的末尾。如果执行了一次 read 方法读取了所有内容那么再次调用 read 方法还能够获得到内容吗答案是不能第一次读取之后文件指针移动到了文件末尾再次调用不会读取到任何的内容。# 首先在 README 文件中写了8个1
6、向文件中写入数据Python 中的文件对象提供了 write() 函数可以向文件中写入指定内容。该函数的语法格式如下file在写入文件完成后一定要调用 close() 函数将打开的文件关闭否则写入的内容不会保存到文件中。这是因为当我们在写入文件内容时操作系统不会立刻把数据写入磁盘而是先缓存起来只有调用 close() 函数时操作系统才会保证把没有写入的数据全部写入磁盘文件中。写入文件示例# 打开文件
如果向文件写入数据后不想马上关闭文件也可以调用文件对象提供的 flush() 函数它可以实现将缓冲区的数据写入文件中。f 三、文件/目录的常用管理操作在终端 / 文件浏览器中可以执行常规的文件 / 目录管理操作例如创建、重命名、删除、改变路径、查看目录内容等等。在 Python 中如果希望通过程序实现上述功能需要导入 os 模块。1、文件操作方法名说明示例rename重命名文件os.rename(源文件名, 目标文件名)remove删除文件os.remove(文件名)2、目录操作方法名说明示例listdir目录列表os.listdir(目录名)mkdir创建目录os.mkdir(目录名)rmdir删除目录os.rmdir(目录名)getcwd获取当前目录os.getcwd()chdir修改工作目录os.chdir(目标目录)path.isdir判断是否是文件os.path.isdir(文件路径)文件或者目录的操作都支持相对路径和绝对路径。