上节课我们学习了什么文件系统,文件树的组成结构是什么样的。我们还学习了用python来查找、重命名一个文件。
这节课,我们一起学习一下怎么用python操作一个文件的内容。
# 文件操作
对一个文件,我们可以1)读取里面的内容、2)往文件里写内容、3)追加文件内容。我们来看看用python怎么做这些事情。
## 打开文件
在对文件内容操作之前,我们首先要打开文件。我们可以使用`open`函数打开文件,看代码:
~~~
file = open('./hello.py', 'r')
~~~
open函数需要两个参数,第一个参数是文件位置,就是我们要打开哪个文件。第二个参数是打开模式。
什么是打开模式呢?就是我们打开这个文件后要做哪个类型的操作。文件操作有这样几个类型
1. 读(read) r ;r+
2. 写(write)w;w+
3. 追加(append)a;a+
可以参考下面的表:
![](https://s1.ax1x.com/2018/08/23/P7u1xK.png)
在不知道用哪个模式的时候,可以参考下图:
![](https://s1.ax1x.com/2018/08/23/P7Qi8I.png)
## 读文件
我们怎么读取文件内容呢?看代码:
~~~
# 打开一个文件
file = open('./hello.py', 'r')
lineArr = file.readlines()
for line in lineArr:
print(line)
file.close()
~~~
## 写文件
~~~
# 打开一个文件
file = open("foo.txt", "w")
file.write( "hello\n")
# 关闭打开的文件
fo.close()
~~~
## 往文件里输出一个99乘法表
~~~
def buildRow(a):
b = 0
multi = []
while b < a:
b = b + 1
multi.append("%s*%s=%s" % (str(a), str(b), str(a * b)))
return " ".join(multi)
tempFile = open('./99.txt','w+')
a = 0
while a < 9:
a = a + 1
tempFile.write(buildRow(a)+"\n")
tempFile.close()
~~~
## 追加文件内容
当我们想往一个文件里追加内容的时候,我们可以使用 a+ 模式。看代码:
~~~
tempFile = open('./99.txt','a+')
tempFile.write("hello world\n")
tempFile.close()
~~~
在`a+` 模式下面,打开的文件指针会直接定位到文件末尾。我们的write会直接写到文件内容的最后面。
## 例子
修改文件内容,将文件里的所有o改为x
```
# 打开这个文件 w+
# 读取内容
# 把o替换成x
# 写文件
f = open('./hello.txt', 'r+')
contentArr = f.readlines()
resultArr = []
for str in contentArr:
resultArr.append(str.replace('o', 'x'))
f.seek(0,0)
for str in resultArr:
f.write(str)
```
对文件的常用操作就这些,小朋友们掌握了吗?
**阿达老师-孩子身边的编程专家**
- 课程介绍
- 搭建环境
- 什么是计算机
- 程序是怎么运行的
- 安装python
- 项目实例-安装IDE
- 变量和简单数据类型
- 数据&变量
- 数字
- 字符串
- 布尔类型
- 项目实例
- 容器-列表
- 容器
- 列表
- 项目实例
- 容器-字典
- 定义字典
- 项目实例
- 数据类型总结
- 条件语句
- python条件语句
- 项目实例
- 循环语句
- for循环
- while循环
- 项目实例
- 函数
- 5.0函数定义
- 5.2函数实战
- 6.文件系统
- 6.1 文件系统介绍&python查找文件
- 6.2 用python读写文件
- 7. python操作时间
- 8.面向对象
- 8.1 类和对象
- 8.2 继承和重写
- 8.3 面向对象项目实战
- 9 GUI编程
- 9.1 GUI基础
- 9.2 备忘清单GUI版
- 10.网络
- 10.1 网络的发展
- 10.2 python http
- 11.web开发
- 11.1 web基础&HTML
- 11.2 CSS&JavaScript
- 11.3 网页计算器
- 11.3 网站开发实战-播客搭建
- 11.3 python-web
- 12. 项目实战-数据处理
- 13. 项目实战-AI入门
- 13.1 环境搭建
- 心得
- 13.2 Tensorflow的瓜怎么吃
- 14 pygame
- 14.1 pygame Helloworld
- 14.4 pygame 动画基础 Animation
- 从0开始学python第14.5节 pygame 加载图片和声音
- 从0开始学python第14.6节 pygame.sprite(上)
- 14.7 pygame.sprite模块(下)
- 14.8 pygame射击游戏(一)
- pygame射击游戏(二)
- 14.8 pygame射击游戏(三)
- 14.8 pygame射击游戏(四)
- 14.8 pygame射击游戏(五)