第十三章 python檔案以及目錄操作

2021-10-02 09:37:29 字數 3069 閱讀 1007

>>>

掌握如何建立,開啟和關閉檔案

掌握如何寫入和讀取檔案的內容

了解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 封裝發布 委託可以在其他類進行訪問,而事件可以確保只有包容類...