[问题] 使用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