You are on page 1of 4

[D30] pythonOS:系統指令和應用 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天

技術問答 技術文章 登入/註冊

第 11 屆 iThome 鐵人賽
a DAY
30
b  自我挑戰組
從寫程式到脫離菜雞的歷練(以python為主的資處與檔案權限)系列 第
30 篇

0
[D30] pythonOS:系統指令和應用

11th鐵人賽

小雨

2019-10-10 00:43:00
20457 瀏覽
讚0
 

要做檔案處理怎麼可以對系統指令不熟悉呢?
往往python做起來較複雜的可直接用系統指令來執行。

system() & popen()


等於替代了終端機,讓程式可直接調用原本在終端執行的指令。
其又以system()特性最像cmd,而popen()就比較偏向輸出內容了。

system()

os.system("此環境指令")
#使用system()必須注意指令是否適合環境作業系統

#Windows

https://ithelp.ithome.com.tw/articles/10226650[2023/2/24 上午 01:28:10]
[D30] pythonOS:系統指令和應用 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天

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") #打開文件

echo用意

這指令可印出程式輸出或自定義內容。巧合的是幾乎所有OS都有這指令:

echo xxxx == 印出xxxx


echo on == 開啟印出內容(預設)
echo off == 關閉印出內容 (連同指令列隱藏)
@echo off == 關閉印出內容 (連同指令列,資料,程式碼隱藏)

Ex:(@echo off應用資料處理)

import os
os.system("@echo off") #關閉所有echo

https://ithelp.ithome.com.tw/articles/10226650[2023/2/24 上午 01:28:10]
[D30] pythonOS:系統指令和應用 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天

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")

popen()

os.popen("此環境指令" , "處理模式" , 緩衝大小)

處理模式:因為模式是命令列 所以只有r跟w

緩衝大小:執行命令時的緩衝 緩衝數值為int
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怎麼處理檔案權限與應用

 留言
 追蹤  檢舉

上一篇 下一篇


[D29] 檔案批次處理 & shutil [D31] pythonOS:權限和split()

https://ithelp.ithome.com.tw/articles/10226650[2023/2/24 上午 01:28:10]
[D30] pythonOS:系統指令和應用 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天

系列文

從寫程式到脫離菜雞的歷練(以python為主的資處與檔案權限)
共 32 篇
目錄  RSS系列文
 訂閱系列文
18 人訂閱

28 [D28] pythonOS:檔案控制

29 [D29] 檔案批次處理 & shutil

30 [D30] pythonOS:系統指令和應用

31 [D31] pythonOS:權限和split()

32 [D32] pythonOS:結構批量資料處理

 完整目錄

尚未有邦友留言

立即登入留言

電週文化事業版權所有、轉載必究 | Copyright © iThome


刊登廣告
授權服務
服務信箱
隱私權聲明與會員使用條款
iT邦幫忙使用說明

https://ithelp.ithome.com.tw/articles/10226650[2023/2/24 上午 01:28:10]

You might also like