Python學習筆記(七)IO程式設計

2021-07-10 21:23:35 字數 2395 閱讀 6321

f = open('...', 'r')    #r表示讀模式

f.read() #將檔案內容讀入記憶體並用乙個str表示

f.close() #為了節省系統資源,使用完之後要關閉檔案

為了避免檔案不存在的錯誤而無法往後執行close函式,可以使用try...finally來處理。但這種方法略顯繁瑣,因此使用with來處理,也不必呼叫close函式:

with

open('...' , 'r') as f:

f line

in f.readlines(): #一次讀取一行並返回list

print(line.strip()) #刪掉換行符

最後寫乙個python將csv檔案讀取到乙個二維list的**:

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)

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)

跨程式語言傳遞物件需要序列化為標準格式如xml,但更好的是json,表示出來是乙個utf-8字元,比xml更快,而且可以在web頁面中直接讀取。使用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...