Python對日常運維工作來說比Perl和Bash都弱。Python做Web開發也比PHP麻煩很多。我個人的感覺Python更像Java,不適合與Perl/Bash比較。
我個人常用的運維工具是Bash為主,Python主要用來做一些演算法演算。因為我的日常維護任務以文件系統維護為主,比較語言要結合場景。
絕大部分的應用需求,所有語言都能完成,但是難易程度不同,選擇語言要看開發者的熟練程度和需求的復雜程度。
如果只是「grep」需求,你選Bash執行grep最簡單,如果稍復雜就用awk,再復雜就用perl。用更通用的語言就是費力不討好。
如果是個矩陣計算需求,perl的數組能把你折騰死,bash的管道能把機器折騰死。
我下面這個觀點一定會有爭議(尤其是PHPer),我傾向於把高級語言分成三類:
1) 底層的C/C++
這是可以寫操作系統,操作硬體的。可以解決一切問題,但是絕大多數互聯網項目不應該用。
2) 中性的Java/Python/Ruby/.NET系列
這是做項目的主要語言,平衡開發效率和執行效率。沒有明顯的亮點,亦沒有明顯的缺點。
3) 特長的PHP/Bash/Perl
在某些特定領域,應該選擇這些有特長的語言。隨著需求越來越全面,語言的短板越用越多,應該控制擴散。
Ⅱ python 在linux 中執行grep 命令
如果多個內容是與關系,可以多個grep用管道相連,是或關系,可用正則式
如grep
'\(ab|cd\)'
a.txt
是查包含
ab或cd的行,
grep
'ab'
a.txt
|
grep
'cd'
是查包含ab和cd的行
要將結果賦到變數
a=`grep
'\(ab|cd\)'
a.txt
`
就行了
在python里就相當好辦了,用不著grep啦,字元串的find函數就行啦
滿意請採納。
Ⅲ python和c++之間使用管道建立通信連接
你這個做法呢。 表面上看沒有問題。實際執行中會因為操作系統對於標准輸入輸出的設計不同而出現問題。
簡單的說。在linux可能是對的。在windows下不穩定。
通常使用標准輸入輸出的情形是,都是單向的。一方輸入 ,另一方輸出。 或者是建立兩個管道,一個管道輸入,一個管道輸出。
你要想明白這是怎麼回事,可以單獨做一個管道測試。 性能與穩定性,傳輸速率都可以。 以前我試過,在linux下管道的速度與網卡的速度基本相當,略慢。很穩定。 但是只限於單向傳輸。
如果你要使用python與C++通訊。 通常會有幾個辦法:
文件方式 (簡易,穩定)
SOCKET方式(麻煩)
單向的管道,最好在shell狀態下,用|來實現。
信號方式(簡易)
共享內存方式(復雜些,主要是數據結構由C++提供,PYTHON用ctype, pack等解析。
直接將C++封裝,然後用python調用(建議用cython方式)
python與C和C++有良好的融合性。這方面從來不是障礙。
Ⅳ 請教python如何執行shell管道命令
Python執行Linux系統命令,即在Python腳本中調用Shell命令,具體有以下四種方法:
1、os.system
//僅僅在一個子終端運行系統命令,而不能獲取命令執行後的返回信息
system(command) -> exit_status
Execute the command (a string) in a subshell.
//如果再命令行下執行,結果直接列印出來:
>>> os.system('ls')
04101419778.CHM bash document media py-django video
11.wmv books downloads Pictures python
all-20061022 Desktop Examples project tools
2、os.popen
//該方法不但執行命令還返回執行後的信息對象
popen(command [, mode='r' [, bufsize]]) -> pipe
Open a pipe to/from a command returning a file object.
3、使用模塊 subprocess
>>> import subprocess
>>> subprocess.call(["cmd", "arg1", "arg2"],shell=True)
//獲取返回和輸出:
import subprocess
p = subprocess.Popen('ls', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
for line in p.stdout.readlines():
print line,
retval = p.wait()
4、使用模塊 commands
>>> import commands
>>> dir(commands)
['__all__', '__builtins__', '__doc__', '__file__', '__name__', 'getoutput', 'getstatus','getstatusoutput', 'mk2arg', 'mkarg']
>>> commands.getoutput("date")
'Wed Jun 10 19:39:57 CST 2009'
>>>
>>> commands.getstatusoutput("date")
(0, 'Wed Jun 10 19:40:41 CST 2009')
Ⅳ python中的grep是什麼功能
Python中貌似沒有grep之類的函數,grep應該是Linux命令行即Bash中的功能。
比如說grep XXX *.txt一下子就可以把所有txt中的XXX所在的顯示出來。