目錄管理(os)
-
system:執行系統命令
# 清空屏幕
# os.system(‘cls’)
# 彈出計算器程序
os.system(‘calc’) -
name:查看系統名稱
- nt:windows內核
- posix:類unix內核
-
獲取環境變量:
# print(os.environ[‘path’])
# print(os.environ.get(‘path2’, ‘abc’))
# 這裏是對上面的封裝
# print(os.getenv(‘path2’, ‘hello’))
print(os.getenv(‘XXX’))
終端操作:
設置:set XXX=yyy
獲取:set XXX -
getcwd:獲取當前工作目錄
print(os.getcwd()) -
mkdir:創建目錄(不能帶中間目錄)
os.mkdir(‘hello’) -
makedirs:創建目錄(會自動創建中間目錄)
os.makedirs(‘a/b/c’) -
rmdir:刪除目錄(只能刪除空目錄)
os.rmdir(‘hello’) -
rename:重命名(可以是文件或目錄)
os.rename(原名稱, 新名稱) -
stat:查看文件信息(也可以是目錄)
os.stat(文件名) -
相對目錄/絕對目錄
相對目錄:有參考的目錄
. 表示當前目錄,通過‘./’可以省略
… 表示上一級目錄,上上一級目錄這樣表示:…/…/絕對目錄:windows中以盤符開頭,類unix中以'/'開頭的目錄 目錄分隔符: windows:/ 或 \ 類unix:/ 建議:統一使用 / 說明:在文件操作時,相對目錄和絕對目錄都可以
-
listdir:查看目錄的直接子文件
os.listdir(目錄) -
path
from os import path # 目錄拼接 # print(path.join('abc/def', 'hello.py')) # 提取目錄 # print(path.dirname('abc/def/hello.py')) # 提取文件名 # print(path.basename('abc/def/hello.py')) # 切割目錄與文件名 # print(path.split('abc/def/hello.py')) # dir, name = path.split('abc/def/hello.py') # print(dir, name) # 切割文件名與後綴 # name, ext = path.splitext('hello.py') # print(name, ext) # 判斷文件是否存在(也可以判斷目錄) # print(path.exists('hello.py')) # print(path.exists('aa')) # 判斷是否是目錄文件 # print(path.isdir('hello.py')) # print(path.isdir('aa')) # 判斷是否是普通文件 # print(path.isfile('hello.py')) # print(path.isfile('aa')) # 獲取文件大小,僅限於普通文件 print(path.getsize('01-os.py')) # 不可以是目錄(大小始終爲0) print(path.getsize('aa'))
文件操作
-
打開文件(open)
-
示例
fp = open(‘00-test.txt’, ‘r’) -
參數
參數(file):操作的文件名
參數(mode):打開方式
參數(encoding):指定編碼方式,通常不用指定,系統會自動識別 -
打開方式
r:只讀方式,文件不存在會報錯
w:只寫方式,文件不存在會創建,文件存在刪除後再創建
a:追加方式,文件不存在會創建,文件存在直接打開(不會清空),只能向最後追加內容
r+:在r方式上添加寫的功能
w+:在w方式上添加讀的功能
a+:在a方式上添加讀的功能在上面模式上添加一個字符b,表示二進制方式打開:rb、wb、ab、rb+、wb+、ab+
說明:沒有b的方式文件讀寫都是str類型,帶b的方式文件讀寫都是bytes -
編碼方式
ASCII:美國信息交換標準代碼
ansi:擴展的ASCII
gb2312:中國的ansi
gbk:擴充的gb2312unicode:萬國碼,將全部國家的字符全部包含進去進行統一編碼
utf-8:可變長度的unicode實現方案,而且對中文支持友好 -
bytes類型
s = b’hello’
print(s)
print(type(s))
#編碼:str => bytes
s = ‘hello’.encode(‘utf-8’)
print(s)
#解碼:bytes => str
b = s.decode(‘utf-8’)
print(b)
-
-
關閉文件
fp.close()
-
文件讀寫
# 判斷是否可讀
# print(fp.readable())
# 讀取指定長度內容
# ret = fp.read(3)# 一次讀取一行 # print(fp.readline()) # 讀取所有內容,返回一個列表,一行一個元素 # lines = fp.readlines() # 判斷是否能夠進行寫操作 # print(fp.writable()) # fp.write('world') # fp.write(b'gogogo')
-
文件指針
# 獲取文件指針的位置
print(fp.tell())# 設置指針偏移 # 參數1:偏移量 # 參數2:參考位置,0表示開頭,1表示當前,2表示末尾 # 帶b的方式打開,設置偏移沒有問題 # 不帶b的方式打開,設置偏移會報錯 fp.seek(-5, 1)
-
文件刪除
os.remove(文件名)