Python3的讀寫檔案,os模組,序列化

2021-08-20 17:41:05 字數 2777 閱讀 2248

一。python語言讀寫檔案的函式

open(file, mode='r', buffering=-1, encoding=none, errors=none, newline=none, closefd=true, opener=none)

mode的幾個引數:

r 只能讀

r+ 可讀可寫 從頂部開始寫,覆蓋之前位置的內容 不建立不存在檔案

rb 讀取二進位制檔案 不建立不存在檔案

w 寫 不建立不存在檔案 檔案存在則,覆蓋之前檔案

w+ 可讀可寫 建立不存在檔案 檔案存在則,覆蓋之前檔案

wb 寫入二進位制檔案 建立不存在檔案 檔案存在則,覆蓋之前檔案

a 從底部開始新增內容 建立不存在檔案

a+ 可讀可寫 從檔案頂部讀取,從檔案底部寫入 建立不存在檔案

ps:w+ a+ 必須在寫入資料後,使用seek(0)將游標移動到開頭,否則無法讀取全部資料

下面來具體的**感受下:

f=open('text2.txt',mode='w+',encoding='utf-8')
f.write('建立了text2檔案') #檔案不存在,建立

f.seek(0) #定位游標到檔案開頭

print(f.read()) #讀取全部內容

f.close()

f=open('text2.txt',mode='w+',encoding='utf-8')

f.write('更改') #檔案存在,覆蓋檔案

print(f.read())

f.close()

f=open('text.txt',mode='r',encoding='utf-8')

print(f.read()) #讀取檔案

f.close()

f=open('text.txt',mode='r+',encoding='utf-8')

f.write('青島') #檔案存在,覆蓋之前位置的內容

print(f.read()) #讀取檔案

f.close()

f=open('text.txt',mode='a',encoding='utf-8')

f.write('\n謝謝觀賞')#底部新增

f.close()

f=open('text.txt',mode='a+',encoding='utf-8')

f.write('\n2023年兒童節')#底部新增

print(f.read()) #從頂部讀取

f.close()

file的方法:

read(size) 有引數則為讀取size個位元組,無引數則讀取所有內容

readline(size) 讀取一行

tell() 返回當前標記位置,以檔案開頭為原點

seek(offset[,whence])

writelines(seq) 迭代字串序列新增

具體**:

f=open('text.txt',mode='a+',encoding='utf-8')

str=['啥家庭啊\n','開開心心']

f.writelines(str)

f.seek(0)

print(f.readline().rstrip()) #讀取一行

print(f.tell())

f.close()

二。操作檔案

python os

模組提供了非常豐富的方法用來處理檔案和目錄

mkdir() 建立目錄

rmdir() 移除目錄

remove() 移除檔案

rename() 修改檔案或目錄名

listdir()返回當前資料夾所有檔案的名字組成的列表

getcwd() 返回當前所在路徑

話不多說。**如下:

import os

os.mkdir('test') #建立目錄

os.rename('aaa.txt','demo1.txt') #修改檔案或目錄名

os.remove('ccc.txt') #移除檔案

print(os.getcwd()) #返回當前路徑

print(os.listdir()) #返回當前位置所有檔案的名字,組裝為列表

os.rmdir('demo') #刪除目錄

三。python序列化和反序列化

在python中,序列化和反序列化是通過「pickle」庫實現的。

pickle有兩個主要的方法。第乙個是將物件放到檔案中的轉儲。第二種方法是從檔案物件載入物件的載入。

pickle必須在二進位制模式下使用,否則會造成檔案資料的破壞

pickle.dump(data,file) 將資料data序列化到file檔案流中

pickle.load(file) 讀取流物件緩衝區資料,並例項化為新的資料物件返回

**實現:

import pickle

data=

#序列化

with open('ccc.txt','wb') as f: #使用with 可以讓file自動關閉

pickle.dump(data, f) #將字典序列化儲存到ccc.txt中

# 反序列化

with open('ccc.txt','rb') as f:

print(pickle.load(f))

pickle.dump()和pickle.load()迴圈形成了與原始資料結構相同的新資料結構。

python3讀寫檔案

一 系統預設的編碼格式為utf8 二 讀寫檔案時通過引數encoding utf8 指定編碼格式,否則檔案在本地開啟時會亂碼 與系統預設編碼不符,參考第1條 三 例項 設定編碼格式為utf8,本地開啟和程式讀取都展示正常,無亂碼 text 我是xx,我愛python f open a.txt w e...

python3的輸出輸入檔案OS

檔案 資料持久化最簡單的型別,也叫平面檔案 flat file 它僅僅是乙個檔名下的位元組流,把資料從乙個檔案讀入記憶體,然後從記憶體寫入檔案。讀乙個檔案之前需要開啟它,之後可以呼叫函式來讀寫資料,最後需要關閉檔案。fileobj open filename,mode fileobj 是open 返...

Python3基礎 讀寫檔案

檔案是作業系統管理和儲存資料的一種方式。python內建了 open 函式來開啟檔案,並建立乙個檔案物件。一 開啟檔案 open 函式 1 open 函式基本格式 myfile open filename,mode 意思是 myfile 為引用檔案物件的變數 filename 為檔名,可以是檔案的絕...