python面向对象之模块文件读写

北京中科白癜风医院崔永玲 http://pf.39.net/bdfyy/bdfzd/
文件目标文件的概念文件的基本操作文件/文件夹的常用操作文本文件的编码方式01.文件的概念1.1文件的概念和作用计算机的文件,就是存储在某种长期储存设备上的一段数据长期存储设备包括:硬盘、U盘、移动硬盘、光盘...文件的作用将数据长期保存下来,在需要的时候使用CPU内存硬盘1.2文件的存储方式在计算机中,文件是以二进制的方式保存在磁盘上的文本文件和二进制文件文本文件可以使用文本编辑软件查看本质上还是二进制文件例如:python的源程序二进制文件保存的内容不是给人直接阅读的,而是提供给其他软件使用的例如:图片文件、音频文件、视频文件等等二进制文件不能使用文本编辑软件查看02.文件的基本操作2.1操作文件的套路在计算机中要操作文件的套路非常固定,一共包含三个步骤:1.打开文件2.读、写文件读将文件内容读入内存写将内存内容写入文件3.关闭文件2.2操作文件的函数/方法在`Python`中要操作文件需要记住1个函数和3个方法

序号

函数/方法

说明

---

---

---

01

open

打开文件,并且返回文件操作对象

02

read

将文件内容读取到内存

03

write

将指定内容写入文件

04

close

关闭文件

`open`函数负责打开文件,并且返回文件对象`read`/`write`/`close`三个方法都需要通过文件对象来调用2.3read方法——读取文件`open`函数的第一个参数是要打开的文件名(文件名区分大小写)如果文件存在,返回文件操作对象如果文件不存在,会抛出异常`read`方法可以一次性读入并返回文件的所有内容`close`方法负责关闭文件如果忘记关闭文件,会造成系统资源消耗,而且会影响到后续对文件的访问注意:`read`方法执行后,会把文件指针移动到文件的末尾```python1.打开-文件名需要注意大小写file=open(README)2.读取text=file.read()print(text)3.关闭file.close()提示在开发中,通常会先编写打开和关闭的代码,再编写中间针对文件的读/写操作文件指针(知道)文件指针标记从哪个位置开始读取数据第一次打开文件时,通常文件指针会指向文件的开始位置当执行了`read`方法后,文件指针会移动到读取内容的末尾默认情况下会移动到文件末尾思考如果执行了一次`read`方法,读取了所有内容,那么再次调用`read`方法,还能够获得到内容吗?答案不能第一次读取之后,文件指针移动到了文件末尾,再次调用不会读取到任何的内容2.4打开文件的方式`open`函数默认以只读方式打开文件,并且返回文件对象语法如下:```pythonf=open(文件名,访问方式)

访问方式

说明

:---:

---

r

以只读方式打开文件。文件的指针将会放在文件的开头,这是默认模式。如果文件不存在,抛出异常

w

以只写方式打开文件。如果文件存在会被覆盖。如果文件不存在,创建新文件

a

以追加方式打开文件。如果该文件已存在,文件指针将会放在文件的结尾。如果文件不存在,创建新文件进行写入

r+

以读写方式打开文件。文件的指针将会放在文件的开头。如果文件不存在,抛出异常

w+

以读写方式打开文件。如果文件存在会被覆盖。如果文件不存在,创建新文件

a+

以读写方式打开文件。如果该文件已存在,文件指针将会放在文件的结尾。如果文件不存在,创建新文件进行写入

提示频繁的移动文件指针,会影响文件的读写效率,开发中更多的时候会以只读、只写的方式来操作文件写入文件示例```python打开文件f=open(README,w)f.write(hellopython!\n)f.write(今天天气真好)关闭文件f.close()2.5按行读取文件内容`read`方法默认会把文件的所有内容一次性读取到内存如果文件太大,对内存的占用会非常严重`readline`方法`readline`方法可以一次读取一行内容方法执行后,会把文件指针移动到下一行,准备再次读取读取大文件的正确姿势```python打开文件file=open(README)whileTrue:读取一行内容text=file.readline()判断是否读到内容ifnottext:break每读取一行的末尾已经有了一个`\n`print(text,end=)关闭文件file.close()2.6文件读写案例——复制文件目标用代码的方式,来实现文件复制过程小文件复制打开一个已有文件,读取完整内容,并写入到另外一个文件```python1.打开文件file_read=open(README)file_write=open(README[复件],w)2.读取并写入文件text=file_read.read()file_write.write(text)3.关闭文件file_read.close()file_write.close()大文件复制打开一个已有文件,逐行读取内容,并顺序写入到另外一个文件```python1.打开文件file_read=open(README)file_write=open(README[复件],w)2.读取并写入文件whileTrue:每次读取一行text=file_read.readline()判断是否读取到内容ifnottext:breakfile_write.write(text)3.关闭文件file_read.close()file_write.close()```03.文件/目录的常用管理操作在终端/文件浏览器、中可以执行常规的文件/目录管理操作,例如:创建、重命名、删除、改变路径、查看目录内容、……在`Python`中,如果希望通过程序实现上述功能,需要导入`os`模块文件操作

序号

方法名

说明

示例

---

---

---

---

01

rename

重命名文件

`os.rename(源文件名,目标文件名)`

02

remove

删除文件

`os.remove(文件名)`

目录操作

序号

方法名

说明

示例

---

---

---

---

01

listdir

目录列表

`os.listdir(目录名)`

02

mkdir

创建目录

`os.mkdir(目录名)`

03

rmdir

删除目录

`os.rmdir(目录名)`

04

getcwd

获取当前目录

`os.getcwd()`

05

chdir

修改工作目录

`os.chdir(目标目录)`

06

path.isdir

判断是否是文件

`os.path.isdir(文件路径)`提示:文件或者目录操作都支持相对路径和绝对路径04.文本文件的编码格式(科普)文本文件存储的内容是基于字符编码的文件,常见的编码有`ASCII`编码,`UNICODE`编码等Python2.x默认使用`ASCII`编码格式Python3.x默认使用`UTF-8`编码格式4.1ASCII编码和UNICODE编码`ASCII`编码计算机中只有``个`ASCII`字符一个`ASCII`在内存中占用1个字节的空间`8`个`0/1`的排列组合方式一共有``种,也就是`28``UTF-8`编码格式计算机中使用1~6个字节来表示一个`UTF-8`字符,涵盖了地球上几乎所有地区的文字大多数汉字会使用3个字节表示`UTF-8`是`UNICODE`编码的一种编码格式4.2Ptyhon2.x中如何使用中文Python2.x默认使用`ASCII`编码格式Python3.x默认使用`UTF-8`编码格式在Python2.x文件的第一行增加以下代码,解释器会以`utf-8`编码来处理python文件```python-coding:utf8-这方式是官方推荐使用的!也可以使用```pythoncoding=utf8unicode字符串在`Python2.x`中,即使指定了文件使用`UTF-8`的编码格式,但是在遍历字符串时,仍然会以字节为单位遍历字符串要能够正确的遍历字符串,在定义字符串时,需要在字符串的引号前,增加一个小写字母`u`,告诉解释器这是一个`unicode`字符串(使用`UTF-8`编码格式的字符串)```python-coding:utf8-在字符串前,增加一个`u`表示这个字符串是一个utf8字符串hello_str=u你好世界print(hello_str)forcinhello_str:print(c)


转载请注明:http://www.aierlanlan.com/grrz/8693.html