python裡的檔案讀寫彙總

2021-09-26 05:32:59 字數 2421 閱讀 6698

為什麼要寫這篇部落格,這其實是寫給我自己看的。我覺得最近用這個很多,但是對於這些我覺得應該總結一下,所以決定把各處抄來的匯個總。

首先羅列出所有檔案操作

操作模式

具體含義

'r'讀取 (預設)

'w'寫入(會先截斷之前的內容)

'x'寫入,如果檔案已經存在會產生異常

'a'追加,將內容寫入到已有檔案的末尾

'b'二進位制模式

't'文字模式(預設)

'+'更新(既可以讀又可以寫)

python讀檔案一般可以使用下列這幾種方法,

import time

defmain()

:# 一次性讀取整個檔案內容

with

open

('1.txt'

,'r'

, encoding=

'utf-8'

)as f:

print

(f.read())

# 通過for-in迴圈逐行讀取

with

open

('1.txt'

, mode=

'r')

as f:

for line in f:

print

(line, end='')

time.sleep(

0.5)

print()

# 讀取檔案按行讀取到列表中

with

open

('1.txt'

)as f:

lines = f.readlines(

)print

(lines)

if __name__ ==

'__main__'

: main(

)

python寫檔案就更簡單了,沒有讀檔案那麼多操作

def

main()

: filename =

'1.txt'

try:

with

open

(filename,

'w')

as f:

for i in

range(0

,100

) f.write(

str(i)

)if i%

10==0:

f.write(

'\n'

)except filenotfounderror as e:

print

('file open failed'

)finally

:print

('end'

)

這裡補充一點,finally下的**不管如何都會執行,甚至呼叫了sys.exit()也會執行,它是總是執行**塊

由於python裡的字典和json的高度相似性,因此在儲存字典或者列表時,通常會以json格式儲存到檔案裡。

json

python

object

dict

array

list

string

strnumber (int / real)

int / float

true / false

true / false

null

none

python

json

dict

object

list, tuple

array

strstring

int, float, int- & float-derived enums

number

true / false

true / false

none

null

import json

defmain()

: mydict =,,

]}try:

with

open

('data.json'

,'w'

, encoding=

'utf-8'

)as fs:

json.dump(mydict, fs)

except ioerror as e:

print

(e)print

('儲存資料完成!'

)if __name__ ==

'__main__'

: main(

)

json模組主要有四個比較重要的函式,分別是:

golang 檔案讀寫彙總

檔案開啟os.open 返回唯讀模式的檔案描述符 os.openfile 0666 o rdonly 唯讀模式 read only o wronly 只寫模式 write only o rdwr 讀寫模式 read write o create 檔案不存在就建立 create a new file ...

檔案流讀寫問題彙總

1.流的三種形態 均是char組成的,流物件不支援複製操作,因此不能儲存在vector 物件中 控制台流物件 istream ostream iostream 檔案流物件 fstream ifstream,ofstream 字串流物件 stringstream istringstream ostri...

VC 中檔案讀寫彙總

a法 cstring strfilename c dd.txt std ifstream in std locale global std locale in.open strfilename std locale global std locale c std string line while ...