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所在的显示出来。