>>>
掌握如何建立,開啟和關閉檔案
掌握如何寫入和讀取檔案的內容
了解os和os.path模組
掌握如何建立和刪除目錄
掌握如何判斷檔案目錄是事存在的方法
掌握如何遍歷目錄
掌握如何刪除,重新命名檔案
掌握獲取檔案基本資訊的方法
12.1 基本檔案操作
13.1.1 建立和開啟檔案
file = open(filename, made, [encoding='utf-8']) # 表示可選
# made 有:
//預設為t(文字模式)
r, rb, r+, rb+,
w, wb, w+, wb+,
a, ab, a+, ab+,
// r(唯讀) w(讀寫) a(追加) b(二進位制) +(更新檔案,並將檔案指標放到開始位置)
13.1.2 關閉檔案
file.close();
13.1.3 找天檔案時使用with語句
with expression as filename # filename = expression;
pass
這樣做的好處,是為了開啟檔案失敗,with 會直接關閉流。不支出現io流錯誤
13.1.4 寫入檔案內容
要求模式為:w,a,w+,a+
file.write(str)
file.writelines(str)
13.1.5 讀取檔案
要求模式為:r,r+
a, 讀取指定字元
file.read([size]) # size 可選, 表示,讀取多少個字元,預設讀取所有
file.seek(offset, [whence]) # offset,表示檔案指標,移動幾個字元
# whence,0表示從頭計算,1,從當前位置計算
b, 讀取一行
當檔案很大時,就需要一行一行的讀取了
file.readline()
c, 讀取所有行
file.readlines() # 返回的是一行一行列表
13.2 目錄操作
13.2.1 os和os.path模組
import os
os.name # 獲取當前作業系統的型別
os.linesep # 獲取當前系統的換行符
os.sep # 獲取路徑分隔符
13.2.3 判斷目錄是否存在
a, os.path.exists(path) # 可以判斷目錄和檔案存在不
# 返回值是true/false
13.2.4 建立目錄
a, 建立一級目錄
os.mkdir(path, [mode=0o777]) # 可選,表示指定數值模式,非unix系統無效
if os.path.exists(path): # 建立一級目錄的通用方法
os.mkdir(path)
多級目錄的建立方法;
import os
def mkdir(path):
if not os.path.isdir(path): # 表示是否存在
mkdir(os.path.split(path)[0])
os.mkdir(path)
else:
print('false')
mkdir(r"c:/py/abc/abcd/abcde")
b, 建立多級目錄
os.makedirs(path, mode==0o777) # 同上
13.2.5 刪除目錄
os.rmdir(path)
if os.path.exists(path): # 刪除目錄的通用方法
os.rmdir(path)
13.2.6 遍歷目錄
os.walk(path, [topdown], [onerror], [followlinks])
# topdown,表示遍歷順序, 預設true,自頂而下
# 返回值為3個元素元組的生成器,(遍歷目錄所有檔案)
# 示例**如下
import os
tuples = os.walk(r"c:\py\dirs")
for root,dirs,file in tuples:
flag = len(root)* ' '
print(root)
for name in dirs:
print(flag,"dir:",name)
for name in file:
print(flag,"fil:", name)
13.3 高階檔案操作
access(path, accessmode) # 獲取檔案是否有指定的訪問許可權(讀取/寫入/執行)
# r_ok,w_ok,x_ok/f_ok,與許可權,一一對應
chmod(path, mode) # 修改指定檔案的訪問許可權
13.3.1 刪除檔案
os.remove(path)
if os.path.exists(path):
os.remove(path)
13.3.2 重新命名檔案和目錄
os.remove(src, dst) # 原始檔路徑,改名後的路徑
13.3.3 獲取檔案基本資訊
os.stat(path) # 返回的值,需要格式化
string = os.stat(path)
string.st_size # 預設單位位元組
string.atime # 最後一次訪問時間
為上面這個函式格式化時間
def formattime(longtime)
import time
return time.strftime('%y-%m-%d %h:%m:%s', time.localtime(longtie)
第十三章 併發
13.1 動機 13.2 基本執行緒 如果必須要控制現成的執行順序,最好是根本不用執行緒,而是自己編寫特定順序彼此控制的協作子程式。繼承thread類或者實現runnable介面。內部類實現。13.3 共享受限資源 1 如果要對類中的某個方法進行同步控制,最好同步所有方法。如果忽略了其中乙個,通常很...
第十三章 類
1.類簡單地說是乙個性的資料型別。類當中有資料成員,和成員函式。類的基本思想就是體現出資料的抽象和封裝。2.這裡只需要說明乙個問題即可 就是類成員函式的const型別 class screen public const int get const int i const int j const 這裡...
第十三章 事件
1 事件的作用 事件是對委託的封裝,如同屬性對字段的封裝。封裝後可以在委託上實現更複雜的邏輯。1.1 封裝訂閱 委託允許使用 對其進行賦值,但向乙個委託例項賦值多個委託時,使用 會造成覆蓋之前的委託。事件只支援 或 對事件進行賦值 1.2 封裝發布 委託可以在其他類進行訪問,而事件可以確保只有包容類...