要做檔案處理怎麼可以對系統指令不熟悉呢?
往往python做起來較複雜的可直接用系統指令來執行。
等於替代了終端機,讓程式可直接調用原本在終端執行的指令。
其又以system()特性最像cmd,而popen()就比較偏向輸出內容了。
os.system("此環境指令")
#使用system()必須注意指令是否適合環境作業系統
#Windows
import os
ph = "123.txt"
ld = os.path.dirname(__file__)
#powershell
os.system("cls") #清除螢幕
os.system("pip list") #pip套件列
os.system("ipconfig /all") #網路卡資訊
os.system("mkdir dir") #建立資料夾
os.system("copy cmd.py abc") #複製至abc目錄裡
os.system("del cmd.py")    #刪除檔案
os.system("notepad 123.txt") #記事本開文件
#Linux
import os
ph = "123.txt"
ld = os.path.dirname(__file__)
#terminal
os.system("su -")  #以su身分執行
os.system("clear")  #清除螢幕
os.system("pip list")  #pip套件列
os.system("ip a")  #網路卡資訊
os.system("mkdir dir")  #建立資料夾
os.system("cp cmd.py/./abc")  #複製至abc目錄裡
os.system("rm cmd.py")    #刪除檔案
os.system("gedit 123.txt")  #打開文件
這指令可印出程式輸出或自定義內容。巧合的是幾乎所有OS都有這指令:
echo xxxx== 印出xxxxecho on== 開啟印出內容(預設)echo off== 關閉印出內容 (連同指令列隱藏)@echo off== 關閉印出內容 (連同指令列,資料,程式碼隱藏)
Ex:(@echo off應用資料處理)
import os
os.system("@echo off") #關閉所有echo
os.system("cls")
os.system("echo 123123") #echo印出
fa = int(input("要幾個檔案?"))
for i in range(0,fa):
    i+=1
    os.system("cd.> %d.c" %i)
#os.system("exit")
os.popen("此環境指令" , "處理模式" , 緩衝大小)
0 ==> 無緩衝 (popen不支援無緩衝)>0 ==> 進行緩衝 緩衝值隨數值變大(單位:一字節)<0 ==> 使用系統默認緩衝值
使用popen()好處不只可制定更多細微指令,還可確認執行情形(記憶體位址)。
import os
a1 = os.popen(u"echo 小雨好帥","w" , 1)
a2 = os.popen(u"mkdir 目錄更帥" , "r" , 1) #=-="
b1 = os.system("cd.> 小雨.帥哥") #無法印出狀態
print(a1 , a2 ,b1 , sep="\n")
明天來講python怎麼處理檔案權限與應用