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 消除檔案內容,然後以讀寫...