永发信息网

为什么用python 不是shell

答案:2  悬赏:60  手机版
解决时间 2021-03-07 16:16
  • 提问者网友:聂風
  • 2021-03-06 17:31
为什么用python 不是shell
最佳答案
  • 五星知识达人网友:人類模型
  • 2021-03-06 18:23
Python是编程语言,操作数据更方便,比如字符串分割,代码重用,函数对象等
全部回答
  • 1楼网友:英雄的欲望
  • 2021-03-06 19:57
使用python来运维linux是非常简单轻松的一件事情,但是仅仅是一些交互式比较强的,比shell更灵活的一些工作时,可以使用python,如果是一些简单的查找,排序,等什么的,可以还用shell来完成,下面来看下在python3.4中,如何与linux交互的。 在python里面可以操作linux的命令有 1,os.system("cmd") 2,os.open("cmd") 3,spawn* 4,subprocess 在最新的python里,推荐使用subprocess来与shell通信,它会生成一个子进程来连接输出,输入,错误等shell下3中标准的输入输出流,并返回执行结果的状态码0和1,来判断本次执行命令的成功与失败。 下面来看一个小例子,首先,确保你的linux环境支持python3.4,如果不支持,你可以参考散仙的上篇文章来安装python3.4 首先,在linux,执行python命令找到最新的python3.4的路径,然后再py文件里声明头部路径,如果不知道python的具体安装路径,可以使用which python来查找路径 [root@master ~]# py pydoc pydoc3.4 python2 python3 python3.4-config python3.4m-config pyvenv pydoc3 python python2.6 python3.4 python3.4m python3-config pyvenv-3.4 [root@master ~]# which python3.4 /usr/local/python3.4/bin/python3.4 [root@master ~]# 写完脚本之后,先给脚本赋值权限,再执行: [root@master rtt]# chmod +x b.py [root@master rtt]# cat b.py #!/usr/local/python3.4/bin/python3.4 import subprocess as t v=t.call("ls") print ("返回值: ",v) [root@master rtt]# b.py a.py b.py b.txt 返回值: 0 [root@master rtt]# 看下面的例子,注意python的shell执行,返回的是一个字符串,如果我们想逐行解析,需要使用如下方法: [root@master rtt]# cat b.txt id name 1 a 2 战三 3 b [root@master rtt]# cat a.py #!/usr/local/python3.4/bin/python3.4 import os import subprocess as t #var=t.getoutput("df -h") #v=t.call("ls") #var=t.getoutput("cat b.txt | grep a ") var=t.getoutput("df -h | cat -n ") for line in var.split("\n"): print("这一行:" +line) #print(var) [root@master rtt]# a.py 这一行: 1 filesystem size used avail use% mounted on 这一行: 2 /dev/sda2 9.7g 2.9g 6.3g 32% / 这一行: 3 tmpfs 495m 0 495m 0% /dev/shm 这一行: 4 /dev/sda1 194m 28m 157m 15% /boot 这一行: 5 /dev/sda3 9.9g 948m 8.5g 10% /home [root@master rtt]# 最后看下python的两种,生成行号的方式: tt="你好\n哈喽" for i,it in enumerate(tt.split("\n")): print(i,it) for line in range(len(tt.split("\n"))): print(line," ",tt.split("\n")[line])
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯