python對於檔案都採用預設的操作步驟:開啟——操作——關閉,對檔案進行操作之後一定要關閉它,關閉檔案將對檔案釋放控制權使檔案恢復儲存狀態,此時另乙個程序可以操作這個檔案。
檔案的常見開啟方式:
方式意義
r唯讀開啟
w只寫開啟(如果檔案不存在,則會建立改檔案;檔案存在,則會清空該檔案的內容)rba
用於對該檔案新增內容
+通常和w或者a一起使用,表示讀寫開啟改檔案
開啟格式:f = open('檔名',』開啟方式『)
關閉格式:f.close()
os模組
作用os.name
檢視當前的作業系統 (windows: nt, linux:posix)
os.uname
檢視當前作業系統的詳細資訊,如果在windows中執行,則需要import platform
os.mkdir()
建立目錄
os.makedir()
可以建立多層目錄,等價於(mkdir -p )
os .rmdir()
刪除目錄
os.mknod()
建立檔案(windows中不支援)
os.rename()
對檔案重新命名
os.remove()
刪除檔案
os.path.exists()
判斷檔案是否存在,返回true是存在,false表示不存在
os.path.splitext()
分離檔名和字尾名
os.path.split()
分離目錄名和檔名()
os.path.getsize()
檢視檔案的大小
os.path.abspath()
顯示改檔案的絕對路徑
注:python 中的集合不能轉成json資料型別
json.load()
示例:
**:
with
open
('hello.txt'
,'r'
, encoding=
'utf-8'
)as f:
print
('檔案內容:\n'
, f.read())
f.seek(0,
0)for i in f:
ifnot i.startswith(
'#')
:print
('檔案中不以#開頭的內容:'
, i)
測試:
1). 必須使用自定義函式,完成對程式的模組化
2). 學生資訊至少包含:姓名、年齡、學號,除此以外可以適當新增
3). 必須完成的功能:新增、刪除、修改、查詢、退出
**:
import json
import os
import pprint
defrewrite
(x, filename=
'學生資訊檔案'):
with
open
(filename, mode=
'w')
asfile
: json.dump(x,
file
, indent=
4, ensure_ascii=
false
)while
true
: act =
input
('請輸入你想完成的操作(新增|刪除|更改|檢視|退出):'
)if os.path.exists(
'學生資訊檔案'):
if os.path.getsize(
'學生資訊檔案')!=
0:with
open
('學生資訊檔案'
, mode=
'r')
as f:
d = json.load(f)
else
: d =
else
: d =
if act ==
'新增'
: number =
input
('學號:'
)if number not
in d.keys():
name =
input
('學生姓名:'
) age =
int(
input
('年齡:'))
d.update(})
rewrite(d)
print
('學號為%s的學生資訊新增成功'
% number)
else
:print
('學號為%s的學生資訊在檔案中已經存在'
% number)
elif act ==
'刪除'
: number =
input
('輸入你想要刪除的學生學號:'
)if number in d.keys():
d.pop(number)
rewrite(d)
print
('學號為%s的學生資訊已經被刪除'
% number)
else
:print
('學號為%s的學生資訊不存在'
% number)
elif act ==
'更改'
: number =
input
('請輸入你要修改的學生學號:'
)if number in d.keys():
kind =
input
('請輸入你要修改學號為%s的什麼資訊(姓名|年齡):'
% number)
content =
input
('修改%s為:'
% kind)
d[number]
.update(
) rewrite(d)
print
('學號為%s的學生資訊已經被更改'
% number)
else
:print
('學號為%s的學生資訊不存在'
% number)
elif act ==
'檢視'
: pprint.pprint(d)
elif act ==
'退出'
:break
else
:print
('請輸入正確的操作'
)
測試: 持久化 檔案
一 檔案 長久儲存資訊的一種資料資訊集合 開啟檔案,用寫的方式 r表示後面字串內容不需要轉義 f稱之為檔案控制代碼 f open r test01.txt w 檔案開啟後必須關閉 f.close 1.with語句開啟檔案 用with語句開啟檔案,不需要關閉 with open r test01.tx...
AOF持久化操作
持久化操作 時點快照 rdb除了時點快照,還進行了持久化的命令,rdb的優點是不占用記憶體 缺點是會丟失資料,並且會造成阻塞。aof 追加新的指令,而不是覆蓋。aof可以做到實時的進行備份,不丟失任何資料,可允許範圍內的丟失。buffer緩衝區 aof寫到緩衝區是寫到系統核心的緩衝區,先把內容寫到緩...
Redis持久化操作
rdb 在指定的時間間隔內,將記憶體中的資料集快照寫入磁碟,它恢復時,是將快照檔案直接讀到記憶體裡。aof是以日誌的方式記錄寫操作,備份如何進行的 redis會單獨建立乙個子程序來進行初始化,會先將資料寫入到乙個臨時檔案內,待持久化過程都結束了,再用這個臨時檔案替換上次持久化好的檔案,整個過程中,主...