1.os模塊
對於文件和目錄進行處理
目錄:就是文件夾
屬性:
os.name:查看當前系統的類型;
如果是windows ---> nt
如果是max ---> posix
os.environ:返回當前系統的環境變量(所有)
函數:
os.environ.get():獲取指定的某一個環境變量
路徑分類:
絕對路徑:帶盤符根目錄的就是絕對路徑
相對路徑:相對於某個文件(參照物)所得到的一個路徑值; 特點:書寫的時候不帶盤符的
os.getcwd():返回當前正在執行的.py文件所對應的完整路徑(絕對路徑)
os.listdir(path):將path路徑下的所有文件和目錄顯示
os.mkdir(path):創建單層文件夾,此方法只能創建目錄,如果目錄已經存在,創建失敗,報錯
os.makedirs(path):創建多層文件夾(級聯新建),此方法也只能創建目錄,如果目錄已經存在,創建失敗,報錯
os.rmdir(path):刪除單層文件夾,此方法只能刪除目錄,如果目錄不存在,刪除失敗,報錯:FileNotFoundError
os.removedirs(path):刪除多層文件夾(級聯刪除),此方法也只能刪除目錄,如果目錄不存在,創建失敗,報錯
os.remove(path):刪除文件,如果文件不存在,報錯!【注意】這個方法只能刪除文件不能刪除目錄
os.rename(old, new):可以給文件或者目錄重命名
os.system():執行系統指令:cls、ipconfig、dir。。。
os.path.join(path, fileName):將path和fileName中的數據拼接稱爲一個新的路徑,以字符串的形式返回
os.path.isdir(path):判斷path對應的路徑內容是否爲一個目錄,如果是,返回True;反之,返回False
os.path.isfile(path):判斷path對應的路徑內容是否爲一個文件,如果是,返回True;反之,返回False
os.path.exists(path):判斷path對應的路徑內容是否存在,如果存在,返回True;反之,返回False
os.path.getsize(path):對path對應的路徑內容進行容量檢測,並且返回字節量
os.path.basename(path):傳入一個路徑值,將此路徑的最後一個/後面的部分返回
os.path.dirname(path):傳入一個路徑值,將此路徑的最後一個/前面的部分返回
os.path.split(path):傳入一個路徑值,將此路徑的最後一個/的前面部分放入到元祖的第一個元素中,
/後面的部分放入到元祖的第二個元素中
os.path.splitext(path):傳入一個路徑值,將此路徑的最後一個.的前面部分放入到元祖的第一個元素中,
以及後面的部分放入元祖的第二個元素中
1.字符集(字符編碼):
ascii碼:
美國的標準碼,範圍:自己去找找看
unicode碼:
萬國碼,它可以包含中文,但是很可惜,它不被通用(流行)
utf-8碼:
計算機中使用最爲流行,它包含了之前unicode中的內容並且擴展了,
它同樣可以保存中文
utf-8碼保存中文字符,一個漢字佔用3個字節,
gbk碼:
我們中國的碼錶,它同樣繼承了gb2312,主要用於一些中文的系統
gbk保存中文字符,1個漢字佔用內存2個字節,
2.字節和字符
記住:計算機中一切皆字節(存儲方面)
字符:我們使用文本編輯器打開,能夠看得懂的(不會亂碼),就是字符文件
字節:我們使用文本編輯器打開,不能夠看懂的,就是字節文件
思考:.doc結尾的文件是字符文件嗎?
不是;
3.文件讀取
有規定的步驟:
1).打開文件
2).操作數據(讀、寫)
3).關閉文件 **
打開文件:
fp= open(path, 打開方式, encoding=,errors='Ignore')
操作數據:
打開方式:
'r':表示只讀字符(readonly)
#'r+':在只讀的功能下,在追加一個寫的功能
'w':表示只寫字符(readwrite),第一次寫完,如果沒有關閉文件,繼續寫,那麼會將原本的內容覆蓋
#'w+':在只寫的功能下,在追加一個讀的功能
'a':表示追加內容
#'a+':在保留追加內容的同時,新增了一個讀的功能
'rb':表示只讀字節(二進制數據)
'wb':表示只寫字節(二進制數據)
encoding:
編碼集如果不顯示定義,對應的就是:gbk
我們也可以根據自己的需要,定義譬如:utf-8
errors:
如果不寫,默認是報錯(編解碼不一致)
我們也可以定義爲ignore,這樣就不會報錯了,但是會出現亂碼
編碼&解碼:
編碼:程序 ---> 文件
解碼:文件 ---> 程序
記住:如果編碼和解碼不一致,一定會亂碼(中文情況下)
讀取文件中的數據:
fp= open(path, ‘r’)
content= fp.read() #讀取全部內容
content= fp.read(num) #讀取num個字節數
content= fp.readline() #讀取一行數據
content= fp.readlines() #讀取所有行,以一個列表的形式返回
print(content) #打印讀取到的內容
【注意】讀文件,如果文件不存在,直接報錯:FileNotFoundError
寫入數據到文件中:
fw= open(path, 'w')
fw.write(str1) #將變量str1中的內容寫入到path對應的文件中(覆蓋)
【注意】寫文件,如果文件不存在,先創建文件,再寫入內容;如果存在了,將以前的內容覆蓋
fw = open(path, 'a')
fw.write(str1) #將變量str1中的內容寫入到path對應的文件中(追加)
關閉文件:
fp.close() #關閉文件(釋放資源)