(1)經常使用命令 from sys import argv form os.path import exists 命令行運行程序 帶參數: script,filename=argv 文件操做相關命令: close:關閉文件 open:打開文件 read:讀取文件內容 readline:讀取文本文件中的一行 readlines:讀取文件全部的行,返回list truncate:清空文件 write("stuff"):將stuff寫入文件(2)IO操做 同步IO:CPU和內存等着外設的執行 異步IO:CPU和內存在外設執行的時候去執行其餘其餘任務 try: f=open('/path/to/file','r') print(f.read()) finally: if f: f.close() with open('/path/to/file','r') as f: print(f.read()) read():一次性讀取文件所有內容,read(size),屢次分段讀取大文件的內容; readline():每次讀取一行內容; readlines():一次讀取文件全部內容並按行返回list for line in f.readlines(): print(line.strip()) # 把末尾的\n 刪掉 讀取UTF-8編碼的二進制文件:f=open('/path/to/file','rb') 讀取UTF-8編碼的文件:f=open('/path/to/file','r',encoding='gbk',errors='ignore') # 忽略編碼錯誤 寫文件時,調用open方法,傳入標識符'w'、'wb'分別表示寫文本文件、二進制文件 'a':以追加模式寫入 fo=open('test.txt','w',encoding='uft-8') # test.txt 不存在,則新建 fo.write('啦啦啦') fo.close() #寫文件時,os不會馬上把數據寫入磁盤,而是放到內存緩存起來,空閒的時候再慢慢寫入。 #只有調用close()方法時,操做系統才保證把沒有寫入的數據所有寫入磁盤 fo=open('test.txt','a',encoding='uft-8') # 在文件中追加內容 fo.write('\n這是追加的內容') fo.close()(3)IO內存操做 StringIO:在內存中讀寫str from io import StringIO f=StringIO('Hello!\nHi!\nGoodbye!') print(f.getvalue()) # 獲取寫入後的str while True: s=f.readline() if s=='': break print(s.strip()) BytesIO:在內存中讀寫bytes from io imprt BytesIO f=BytesIO() f.write('中文'.encode(''UTF-8)) print(f.getvalue())(4)OS經常使用 import os os.name # posix:linux\unix\mac nt:windows os.environ # 查看操做系統中定義的環境變量 os.environ.get('PATH') # 查看PATH環境變量 os.path.abspath('.') # 查看當前目錄的絕對路徑 os.path.join('/User/michael','testdir') # 在某個目錄下建立一個新目錄(兼容不一樣操做系統),首先把新目錄的完整路徑表示出來 os.mkdir('/User/michael/testdir') # 而後建立一個目錄 os.rmdir('/User/michael/testdir') # 刪掉一個目錄 os.path.split('/User/michael/testdir/file.txt') # 拆分路徑,後一部分是最後級別的目錄或 文件名 os.path.splitext('/User/michael/testdir/file.txt') # 直接獲得文件擴展名 拆分、合併路徑的函數只是對字符串進行操做,不要求目錄和文件真實存在 os.rename('test.txt','test.py') # 文件重命名 os.remove('test.py') # 刪除文件 os.isabs(path) # 判斷是不是絕對路徑 os.path.exists(path) # 檢驗給出的拉路徑是否真的存在 os.path.basename(path) # 獲取文件名 os.path.dirname(path) # 獲取路徑名 shutil模塊提供了copyfile()的函數來複制文件,能夠把它看作os模塊的補充 # 列出當前目錄下全部的目錄 [x for x in os.listdir('.') if os.path.isdir(x)] # 列出全部的.py文件 [x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext[1]=='.py']