文件的讀寫通常包含以下步驟:
-
文件的打開:open()
open或with open會返回文件對象,必須用read或readlines之后才能打印
在此我會介紹with open 與open之間的區別。提前劇透with open優于open - 文件的讀入:read()
- 文件的寫入:write()
- 文件的關閉:close()
另外介紹兩個模塊的內容:
- 文件的定位
- 文件的屬性
一、文件的打開:open與with open(返回文件對象)
1、open
open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
file
:包含路徑的文件名。絕對路徑或者是相對路徑
mode|
:選擇不同的模式可以對文件進行不同的操作,
默認屬性’rt’
,即以只讀方式打開文本文件。
模式 | 描述 |
---|---|
‘r’ | 只讀方式: 默認屬性 |
‘w’ | 寫入模式:如果該文件已存在則打開文件,并從開頭開始編輯,原有內容被刪除。如果文件不存在,創建新文件 |
‘x’ | 只寫模式:新建一個文件,如果該文件已存在則會報錯。 |
‘a’ | 追加模式:如果文件存在,指針放在文件結尾。新內容將會被寫入到已有內容之后。如果文件不存在,創建新文件寫入 |
‘b’ | 二進制模式。 |
‘t’ | 文本模式: 默認屬性 |
‘+’ | 打開一個文件進行更新(可讀可寫) |
‘U’ | 通用換行模式(不推薦) |
以下幾點是總結:參考原文:https://www.cnblogs.com/xyf9575/p/7039548.html
-
w 寫模式,它是不能讀的,如果用w模式打開一個已經存在的文件,會清空以前的文件內容,重新寫
w+ 是讀寫內容,只要 沾上w,肯定會清空原來的文件 -
r 讀模式,只能讀,不能寫,而且文件必須存在
r+ 是讀寫模式,只要 沾上r,文件必須存在 - a 追加模式,也能寫,在文件的末尾添加內容
- rb+、wb+、ab+,這種是二進制模式打開或者讀取,一些音樂文件
2、with open與open的區別
with open() as f的好處
- 無論出現是否出現error都會關閉文件
-
使用它的時候python會自動確定關閉時間,你只管打開文件并使用它。
所以with open 是我們的首選,而非只使用open
二、文件的讀入:
此模塊常用的函數有:
pi_digits.txt
3.1415926535
8979323846
2643383279
file_reader.py(看一下read()和readlines()的區別)
>>
>
file_name
=
'pi_digits.txt'
>>
>
with
open
(
file_name
)
as
f
:
>>
>
print
(
f
.
read
(
)
)
>>
>
print
(
f
.
readlines
(
)
)
3.1415926535
8979323846
2643383279
###以上三行結果是read的
[
'3.1415926535\n'
,
' 8979323846\n'
,
' 2643383279'
]
### 此行結果是readlines的
三、文件的寫入
1、寫入空文件:以’w’方式打開文件。
demo1
file_name
=
"love_letter"
with
open
(
love_letter
,
'w'
)
as
f
:
f
.
write
(
"I love you\n"
)
f
.
write
(
"i love you\n"
)
最終會顯示
I love you
i love you
2、在舊文件后面添加新內容:以’a’方式打開
demo2
file_name
=
"love_letter"
with
open
(
file_name
,
'a'
)
as
f
:
f
.
write
(
"I also love you\n"
)
最終會在demo1下面添加一行
I also love you
四、文件的關閉
如果是with open打開的不用管這個,如果是open打開的則需要在文末輸入下列代碼
f
.
close
(
)
五、文件的定位(指針)
指針就相當于我們在word中輸入時候的光標,光標在哪文件就從哪開始輸入。
- f.tell():報告當前指針位置
-
f.seek(offset,from)
offset代表文件指針的偏移量,
from代表從何處開始算:0代表文件起始位置,1代表當前位置,2代表文件末尾)偏移offset個字節)
使用open()方法打開文件時候,指針會默認在文件開始的地方。
f.read(3)是從指針所在的地方往后讀取三個字符,也就是說不改變指針的位置的話,f.read(3)就是讀取文件開頭的三個字符。
f.write()則是將指針放在文件末尾進行寫入,寫完之后指針依舊會在文件末尾。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
