python16檔案的讀寫

2021-10-24 16:23:56 字數 3890 閱讀 5790

open函式

open函式用來以不同的模式開啟檔案

我們來看一下這個函式的引數

open(file, mode='r', buffering=none, encoding=none, errors=none, newline=none, closefd=true):
其中比較重要的是file-檔名,mode-開啟方式,encoding-解碼方式

這裡簡單講一部分這些模式是如何選擇的

模式功能

r唯讀模式,只能讀取

w可寫模式,如果檔案不存在則會建立乙個新的檔案,注意這裡的寫是指覆蓋

a追加模式,如果檔案不存在則會建立乙個新的檔案,注意這裡的寫入是指覆蓋

唯讀模式

唯讀模式要求必須要現有乙個檔案

所以要先建立好乙個檔案,我這裡將其命名為test1.txt

line 1

line 2

第三行第四行

上面是檔案裡的內容

f = open('test1.txt','r',encoding='utf8')

print(f.readable())

print(f.readline(),end='')

print(f.tell())

f.seek(0,0)

print(f.read())

print(f.tell())

f.seek(0,0)

print(f.readlines())

f.seek(8,0)

print(f.tell())

print(f.readlines(6))

true

line 1

8line 1

line 2

第三行第四行

36['line 1\n', 'line 2\n', '第三行\n', '第四行']

8['line 2\n']

下面來把這些函式一一講解

(1).f.readable,檢視當前的檔案是否可讀,可讀則返回true

f = open('test1.txt','r',encoding='utf8')

print(f.readable())

true
(2).f.readline()

f = open('test1.txt','r',encoding='utf8')

print(f.readline(),end='')

line 1
列印一行資料

(3).f.readlines()

f = open('test1.txt','r',encoding='utf8')

print(f.readlines())

f.seek(0,0)

print(f.readlines(6))

['line 1\n', 'line 2\n', '第三行\n', '第四行']

['line 2\n']

這是以列表形式返回全部行的函式,它可以是有引數的,它的引數超過當前行的長度就會多一行,現在是一行,因為當前行的長度為6(字母,空格為1),所以超過6就會多返回一行

f = open('test1.txt','r',encoding='utf8')

print(f.readlines(6))

f.seek(0,0)

print(f.readlines(9))

['line 1\n']

['line 1\n', 'line 2\n']

(4).tell,seek

檔案的讀取是有指標的,這條語句讀到**下一條語句從之前指標指向的位置開始讀。

f = open('test1.txt','r',encoding='utf8')

print(f.readline(),end='')

print(f.tell())

print(f.readline(),end='')

print(f.tell())

print(f.readline(),end='')

print(f.tell())

print(f.readline(),end='')

print(f.tell())

而tell可以看到檔案指標的數值

line 1

8line 2

16第三行

27第四行36

由此我們可以看出看來字母,數字,空格佔乙個,換行符佔兩個,漢字佔三個

而且還要注意,檔案指標是計算換行符的,而當用readlines時是不計算換行符的

而這個檔案指標的位置只可調的

print(f.tell())

f.seek(6,0)

print(f.tell())

f.seek(0,2)

print(f.tell())

f.seek(12,0)

print(f.tell())

f.seek(0,1)

print(f.tell())

0636

1212

這個函式有兩個引數第乙個是偏移量,第二個是模式選擇

一共有三種模式分別是:『0』從檔案頭開始,『1』從指標當前位置開始

​ 『2』從檔案尾開始

可寫模式

開啟檔案時,如果檔案不存在則會建立乙個新的檔案,

還要注意這裡的寫是指覆蓋,所以應用時要小心不要把以前的資料清除

f = open('test2.txt','w',encoding='utf8')

f.write('hello!!')

在檔案執行之前是沒有test2檔案的

在檔案執行後自動建立了test2.txt

hello!!
這是檔案裡面的內容

f.write('注意這裡的寫入是覆蓋')
在修改**後,我們可以看到test2.txt中的內容已經被覆蓋了

追加模式

f = open('test2.txt','a',encoding='utf8')

f.write('注意這裡的寫入是追加')

這就是追加模式了

json檔案的寫入與讀取

想要向檔案寫入或讀取檔案直接使用json模組中的函式就可以了

import json

da =

f = open("text.json","w")

json.dump(da,f)

成功轉成裡json資料

接下來我們讀取之前寫完的json檔案

import json

f = open("text.json","r")

print(json.load(f))

.dump(da,f)

[外鏈轉存中...(img-9pah3cf8-1602425703685)]

成功轉成裡json資料

接下來我們讀取之前寫完的json檔案

import json

f = open(「text.json」,「r」)

print(json.load(f))

成功以字典形式返回

python 16 檔案操作 輸入輸出

檔案操作分為三步 找到檔案 操作關閉按照編碼方式進行檔案的分類 使用方便 占用記憶體小 但是讀取速度慢 不允許跳躍讀取 二進位制檔案 把檔案儲存放在記憶體檔案中進行操作 分類 程式檔案 資料檔案 輸入檔案 輸出檔案文字檔案的操作 又叫ascci檔案 但是預設是編碼uncode編碼 開啟檔案 open...

16,檔案讀寫,關閉流,with as ,

做一點小改動,因為我們目前先不考慮字符集 open file,mode r buffering 1,encoding none,errors none,newline none,closefd true,opener none 開啟檔案 file open e 94 python練習 aa.txt ...

Python 4 檔案讀寫

宣告 open 路徑 模式 encoding 編碼 errors 路徑 檔案的絕對路徑或者相對路徑 要注意特殊字元的轉義 c path data.txt r c path data.txt 字串前加r,表示忽略轉義字元,模式 r 讀 w 清空寫 rw 讀寫 a 追加文字 模式 b,即為以二進位制的方...