[問題] 使用python控制bash是個好方法嗎?

作者: ericerix (Ponwar)   2021-09-10 18:36:46
如題
最近在 Linux 上使用 python 做分析
因為 Linux 有很多 tool 很方便,打個 command 就有我要的東西,
最近我有需求,就是需要把 Linux tool 出來的資訊用 python 做分析,
所以有在 python 內使用 subprocess 這個 package 來控制 bash
當然是成功的,也可以 print 出我要的(能 print 出代表可以做分析了)
但這個做法會是個好作法嗎?是否移植性就會比較弱一點?
我需要且已經考量的點有:
1.若要到別台 Liunx 上使用我的 python script,要先裝我用到的 Linux tool
2.只能在 Linux 系統上使用我的 python script
不知道有沒有是我沒有考量進去的點
謝謝大家!
作者: Schottky (順風相送)   2021-09-10 18:46:00
Linux 工具 MinGW 都有做成可以在 Windows 跑的 EXE 檔當然包括 bash,所以不是太特殊的指令都不用擔心在 Windows 上,別人開 CMD 你開 bash 感覺特別的囂張
作者: Hsins (翔)   2021-09-10 19:17:00
要考量的就是是不是多數系統 buils in 的命令,另外得提一下的是 macOS 或者說 Unix 下有寫命令即使名稱一樣,但使用方法和結果未必與 Linux 下一樣如果不是內建的命令,常見的做法會是:1. 將依賴反轉過來,命令的結果透過管道交給 Python 腳本處理,這樣即使沒有命令,只要輸入相同也可以用2. 把要的功能打包起來…
作者: leolarrel (真.粽子無雙)   2021-09-11 11:10:00
我也建議樓上大大提供的(1)方法善用shell script
作者: Sunal (SSSSSSSSSSSSSSSSSSSSSSS)   2021-09-11 15:33:00
就linux 常見用法 "ls -l | wc -l" 中間的 "|"把前一個指令的 stdout 轉給下一個指令處理但我不確定windows的話 powershell有沒有類似指令
作者: Schottky (順風相送)   2021-09-11 15:51:00
從 DOS 時代就有 pipe (|) 所以 CMD 和 powershell 都有不過我比較挺原 PO 作法,因為我也習慣這樣做 XDDDD
作者: Hsins (翔)   2021-09-11 17:06:00
就像 Sunal 說的,這樣可以不用管 | 之前的東西是什麼,只需要確保拿到的東西是一致的就好, 如果你說的指令是放諸各作業系統都能用且格是一致的, 再用原來方法寫
作者: holishing   2021-09-12 18:57:00
功能類似但有被包成 library 的東西盡量利用比較好但只是要快點把東西實作出來的話其實就你方便就好依賴反轉也推

Links booklink

Contact Us: admin [ a t ] ucptt.com