python讀寫檔案剖析

2021-09-06 22:18:17 字數 1723 閱讀 1120

2.json檔案讀寫

前段時間用print在乙個啟動的服務上面打log,結果每次都是等半天,然後一股腦的讀寫,直覺告訴我是buffer的問題~

f =

open

('py3.txt'

,'wt'

,encoding=

'utf-8'

)f.write(

'你好'

)f.close(

)f =

open

('py3.txt'

,'rt'

,encoding=

'utf-8'

)s = f.read(

)print

(s)

緩衝分三種:

全緩衝 : open函式的buffering設定大於1的整數n,n為緩衝區大小,linux預設為page的大小4096 滿了n 個位元組才會寫入磁碟 。

f=open(「demo.txt」,』w』,buffering=1)
行緩衝 : open 函式的buffering設定為1, 碰到換行就會將緩衝區的寫入磁碟。

f=open(「demo.txt」,』w』,buffering=1)
無緩衝 : open 函式的buffering設定為0 有輸入就寫入磁碟。

f=open(「demo.txt」,』w,』,buffering=0)
緩衝的目的:是為了減少系統的io呼叫。只有當符合一定條件(比如緩衝數量)時才呼叫io。

比如檔案型別 ,訪問許可權,最後修改時間點,檔案大小

使用系統的呼叫就可以達到,也可以使用os.path來進行。

#!/usr/bin/python3

# os.path方法

import os

# 判斷檔案是否為目錄

print

(os.path.isdir(

'python.png'))

# 判斷檔案是否是普通檔案

print

(os.path.isfile(

'python.png'))

# 獲取檔案 訪問、修改、節點狀態 時間

import time

print

(time.localtime(os.path.getatime(

'python.png'))

)print

(time.localtime(os.path.getmtime(

'python.png'))

)print

(time.localtime(os.path.getctime(

'python.png'))

)# 獲取檔案大小

print

(os.path.getsize(

'python.png'

))

# -*- coding: utf-8 -*-

import json

data=

,"msglen":90

}print json.dumps(data, sort_keys=

true

, indent=2)

# 排序並且縮排兩個字元輸出

執行結果:

,"msglen":90

}

HDFS檔案的讀寫操作剖析

namenode namenode負責管理檔案目錄 檔案和block的對應關係以及block和datanode的對應關係。datanode datanode就負責儲存了,當然大部分容錯機制都是在datanode上實現的。二 hdfs基本架構圖 rack 是指機櫃的意思,乙個block的三個副本通常會...

Python檔案讀寫

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

python檔案讀寫

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