要做檔案處理怎麼可以對系統指令不熟悉呢?
往往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怎麼處理檔案權限與應用