python讀寫檔案

2021-09-10 13:04:53 字數 2927 閱讀 3262

r讀w

寫a追加r+ (r+w)

可讀可寫,檔案若不存在就報錯(ioerror)

w+ (w+r)

可讀可寫,檔案若不存在就建立

a+ (a+r)

可追加可寫,檔案若不存在就建立

對應的,如果是二進位制檔案,就都加乙個b:

'rb'  'wb'  'ab'  'rb+'  'wb+'  'ab+'

三種方式:

方法描述

read()/read(size)

一次讀取檔案所有內容,返回乙個str。加入size: 每次最多讀取指定長度的內容,返回乙個str;在python2中size指定的是位元組長度,在python3中size指定的是字元長度

readlines()

一次讀取檔案所有內容,按行返回乙個list

readline()

每次只讀取一行內容

例如:讀下面這個檔案1.txt:

hello

world

!zhj

fly123

(1)read()讀取整個檔案(結果即上面檔案內容):

def read_file():

with open(filepath, 'r') as f:

res = f.read()

print(res)

(2)read(size):

def read_file():

with open(filepath, 'r') as f:

while true:

res = f.read(10)

if not res:

break

print(res, end='')

(3)readlines():

def read_file():

with open(filepath, 'r') as f:

res = f.readlines()

for _res in res:

print(_res, end='')

(4)readline():

def read_file():

with open(filepath, 'r') as f:

while true:

res = f.readline()

if not res:

break

print(res, end='')

寫檔案與讀類似,只是open的時候開啟方式不同。

python檔案物件提供了兩個「寫」方法: write() 和 writelines()。

另外,寫的內容必須是str,否則會報錯。

例如:(1)write寫:

def read_file():

with open(filepath, 'w') as f:

res = 'hello world!'

f.write(res)

(2)writelines寫:

def read_file():

with open(filepath, 'w') as f:

res = ['hello\nworld\nzhj\nfly\n']

f.writelines(res)

結果:

hello

world

zhjfly

使用csv模組讀寫

原檔案:

a 1 2 3

b 4 5 6

c 7 8 9

d 10 11 12

def read_file():

with open(filepath, 'r') as f:

lines = csv.reader(f, delimiter=' ')

for line in lines:

print(line)

結果:

['a', '1', '2', '3']

['b', '4', '5', '6']

['c', '7', '8', '9']

['d', '10', '11', '12']

def read_file():

file = [['a', '1', '2', '3'], ['b', '4', '5', '6'], ['c', '7', '8', '9'], ['d', '10', '11', '12']]

with open(filepath, 'w', newline='') as f:

writer = csv.writer(f, delimiter=' ')

for line in file:

writer.writerow(line

從字串讀取json:

json_obj = json.loads(str, object_pairs_hook=ordereddict)
從檔案讀取json:

with open(filepath, 'r') as f

json_obj = json.load(f, object_pairs_hook=ordereddict)

寫入字串:

str = json.dumps(json_obj, sort_keys=true, indent=4)
寫入檔案:

with open(filepath) as f:

json.dump(json_obj, f, sort_keys=true, indent=4)

Python檔案讀寫

今天在看python檔案讀寫操作,發現python file name mode buffering file 函式用於建立乙個file物件,它有乙個別名叫open 可能更形象一些,它們是內建函式。來看看它的引數。它引數都是以字串的形式傳遞的。name是檔案的名字。mode 是開啟的模式,可選的值為...

python檔案讀寫

檔案讀寫模式 模式 描述 r以讀方式開啟檔案,可讀取檔案資訊。w以寫方式開啟檔案,可向檔案寫入資訊。如檔案存在,則清空該檔案,再寫入新內容 a以追加模式開啟檔案 即一開啟檔案,檔案指標自動移到檔案末尾 如果檔案不存在則建立 r 以讀寫方式開啟檔案,可對檔案進行讀和寫操作。w 消除檔案內容,然後以讀寫...

python 讀寫檔案

python讀寫檔案在文字不大的情況可以用正常的 open 然後讀入 readline行讀入 或者整體讀入 read readlines 基本知識 file open path,r 說明 第乙個引數是檔名稱,包括路徑 第二個引數是開啟的模式mode r 唯讀 預設。如果檔案不存在,則丟擲錯誤 w 只...