為了避免檔案不存在的錯誤而無法往後執行close函式,可以使用f = open('...', 'r') #r表示讀模式
f.read() #將檔案內容讀入記憶體並用乙個str表示
f.close() #為了節省系統資源,使用完之後要關閉檔案
try...finally
來處理。但這種方法略顯繁瑣,因此使用with來處理,也不必呼叫close函式:
最後寫乙個python將csv檔案讀取到乙個二維list的**:with
open('...' , 'r') as f:
f line
in f.readlines(): #一次讀取一行並返回list
print(line.strip()) #刪掉換行符
import csv
csvfile = open('f:/lp/testcsv.csv', 'r')
reader = csv.reader(csvfile)
csvl =
forline
in reader:
l =
for n in
line:
from io import stringio
f = stringio()
f.write('...') #如果讀寫二進位制,路徑前單引號外加乙個b
print(f.getvalue()) #獲取寫入後的str
g = stringio('...')
while true:
...
習題:對乙個資料夾進中的所有目錄和檔案進行查詢,返回檔名中包含使用者輸入字元的檔案相對路徑import os
os.path.abspath('.') #檢視當前目錄的絕對路徑
os.mkdir('...') #建立目錄
os.rmdir('...') #刪除目錄
os.path.join(路徑, 目錄名) #在路徑下增加一級目錄
os.path.split('...') #拆分成兩部分,第二部分是最後一級目錄或者檔名
os.path.splittext(檔案路徑) #拆分成兩部分,第二部分得到副檔名
#以上三個函式只對字串操作,而不管檔案是否存在
os.rename(name, new_name) #重新命名
os.remove(name) #刪除檔案
[xfor
x in os.listdir(path)] #列出path目錄下的所有目錄和檔案
os.path.isfile(x) #判斷x是否是檔案
os.path.isdir(x) #判斷x是否是目錄
print('please input target string in file name:')
keyword = input()
rst =
abs_path = os.path.abspath('.')
defsearchkwd
(path):
for x in os.listdir(path):
if os.path.isfile(x) and x.find(keyword)!= -1:
r_path = path[3:]
if os.path.isdir(x):
searchkwd(os.path.join(path, x))
searchkwd(abs_path)
if len(rst) == 0:
print('no matched files found!')
print(rst)
跨程式語言傳遞物件需要序列化為標準格式如xml,但更好的是json,表示出來是乙個utf-8字元,比xml更快,而且可以在web頁面中直接讀取。使用import pickle
d =
f = open('iotest.txt', 'wb')
pickle.dump(d,f) #dump函式將d轉化為二進位制寫入f
f.close()
f = open('iotest.txt', 'rb')
d = pickle.load(f) #反序列化
f.close()
print(d)
import json
來將任意python物件轉化為json字串,序列化方法和上述一樣。
dumps函式可以有第二個引數,傳入乙個方法,這樣就可以把例項轉化成json物件。同樣,反序列化也可以如此操作,不再贅述。
python學習筆記 IO程式設計
由於cpu和記憶體的速度遠遠高於外設的速度,所以,在io程式設計中,就存在速度嚴重不匹配的問題。舉個例子來說,比如要把100m的資料寫入磁碟,cpu輸出100m的資料只需要0.01秒,可是磁碟要接收這100m資料可能需要10秒,怎麼辦呢?有兩種辦法 第一種是cpu等著,也就是程式暫停執行後續 等10...
python學習筆記 九 IO程式設計
一.檔案讀寫 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 ...
Python學習筆記 四 IO程式設計
使用open 函式開啟檔案,返回乙個檔案物件,可選擇傳參模式和緩衝區,預設是讀模式,緩衝區是無 利用open 函式可以開啟檔案,如下 open 的第二個引數是 r 表示的是讀檔案,第三個引數encoding指定的是檔案的編碼格式.filepath d cc.txt f open filepath,r...