上節課我們學習了什么文件系統,文件樹的組成結構是什么樣的。我們還學習了用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+
可以參考下面的表:

在不知道用哪個模式的時候,可以參考下圖:

## 讀文件
我們怎么讀取文件內容呢?看代碼:
~~~
# 打開一個文件
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射擊游戲(五)