一. 檔案讀寫:
1. 讀檔案:
try:
f = open('d:\\1.txt', 'r') # 讀取普通檔案
f = open('d:\\1.jpg', 'rb') # 讀取二進位制檔案
f.read()
finally:
if f:
f.close()
with open('d:\\1.txt', 'r') as f: # 使用with會自動呼叫close
for line in f.readlines(): # readlines可以讀取一行
print(line.strip()) # 把末尾的'\n'刪掉
import codecs
with codecs.open('d:\\1.txt', 'r', 'gbk') as f: # 使用codecs可以指定編碼
for line in f.readlines():
print(line.strip())
2. 寫檔案:f = open('d:\\1.txt', 'w') # 寫二進位制位wb
f.write('hello, world!')
f.close()
二. 操作檔案和目錄:
python的os模組封裝了作業系統的目錄和檔案操作,要注意這些函式有的在os模組中,有的在os.path模組中
import os
print os.environ # 獲取作業系統的環境變數
print os.getenv('path') # 獲取環境變數中path的值
print os.path.abspath('.') # 檢視當前目錄的絕對路徑
os.mkdir('d:\\test') # 然後建立乙個目錄
os.rmdir('d:\\test') # 刪掉乙個目錄
print os.path.join('d:\\test', 'tt') # 把兩個路徑合併成乙個 d:\test\tt
print os.path.split('d:\\test\\1.txt') # 拆分路徑('d:\\test', '1.txt')
print os.path.splitext('d:\\test\\1.txt') # 獲取拓展名 ('d:\\test\\1', '.txt')
三. 序列化
try:
import cpickle as pickle # 匯入cpickle(c語言寫的)
except importerror:
import pickle # 匯入失敗就匯入pickle(python寫的)
d = dict(name='bob', age=20, score=88)
f = open('d:\\dump.txt', 'wb')
pickle.dump(d, f) # 資料序列化到檔案
f.close()
f = open('d:\\dump.txt', 'rb')
d = pickle.load(f) # 資料反序列化到記憶體
f.close()
print d
四. json:
json和python物件之間轉換:
import json
d = dict(name='bob', age=20, score=88)
# 序列化python為json格式
print json.dumps(d) #
# json反序列化成python物件
json_str = ''
print json.loads(json_str) #
定製json序列化和反序列化:
import json
class student(object):
def __init__(self, name, age, score):
self.name = name
self.age = age
self.score = score
# 定製json序列化
def student2dict(std):
return
s = student('bob', 20, 88)
print(json.dumps(s, default=student2dict))
# 定製反序列化json
def dict2student(d):
return student(d['name'], d['age'], d['score'])
json_str = ''
print(json.loads(json_str, object_hook=dict2student))
python學習筆記 IO程式設計
由於cpu和記憶體的速度遠遠高於外設的速度,所以,在io程式設計中,就存在速度嚴重不匹配的問題。舉個例子來說,比如要把100m的資料寫入磁碟,cpu輸出100m的資料只需要0.01秒,可是磁碟要接收這100m資料可能需要10秒,怎麼辦呢?有兩種辦法 第一種是cpu等著,也就是程式暫停執行後續 等10...
Python學習筆記(七)IO程式設計
f open r r表示讀模式 f.read 將檔案內容讀入記憶體並用乙個str表示 f.close 為了節省系統資源,使用完之後要關閉檔案為了避免檔案不存在的錯誤而無法往後執行close函式,可以使用try.finally來處理。但這種方法略顯繁瑣,因此使用with來處理,也不必呼叫close函式...
Python學習筆記 四 IO程式設計
使用open 函式開啟檔案,返回乙個檔案物件,可選擇傳參模式和緩衝區,預設是讀模式,緩衝區是無 利用open 函式可以開啟檔案,如下 open 的第二個引數是 r 表示的是讀檔案,第三個引數encoding指定的是檔案的編碼格式.filepath d cc.txt f open filepath,r...