博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python中如何使用shell命令, 及python 与shell 中的变量相互通信
阅读量:6080 次
发布时间:2019-06-20

本文共 1236 字,大约阅读时间需要 4 分钟。

  1. python中使用shell命令有多种方法,我自己觉得比较好用的是用commands模块:

import commands

a,b = commands.getstatusoutput("ls -Al")

a是退出状态(int类型), b是shell 命令的输出结果

python -> shell:

1.环境变量

import os

var=123或var='123'
os.environ['var']=str(var) #environ的键值必须是字符串
os.system('echo $var') 或

a,b = commands.getstatusoutput("$var")

2.字符串连接

import os

path='/root/a.txt'
var=[1]
var='bash'
os.system('echo ' + path) #注意echo后有空格
os.system('echo ' + str(var[0]))
os.system('echo ' + var + ' /root/c.sh') #注意echo后和/root前有空格

3.通过管道

import os

var='123'
os.popen('wc -c', 'w').write(var)

4.通过文件

output = open('/tmp/mytxt', 'w')

output.write(S) #把字符串S写入文件
output.writelines(L) #将列表L中所有的行字符串写到文件中
output.close()

5.通过重定向标准备输出

buf = open('/root/a.txt', 'w')

print >> buf, '123\n', 'abc'

或:

print >> open('/root/a.txt', 'w'), '123\n', 'abc' #写入或生成文件

print >> open('/root/a.txt', 'a'), '123\n', 'abc' #追加

shell -> python:

1.管道

import os

var=os.popen('echo -n 123').read( )
print var

2.

import commands

var=commands.getoutput('echo abc') #输出结果
var=commands.getstatusoutput('echo abc') #退出状态和输出结果

3.文件

input = open('/tmp/mytxt', 'r')

S = input.read( ) #把整个文件读到一个字符串中
S = input.readline( ) #读下一行(越过行结束标志)
L = input.readlines( ) #读取整个文件到一个行字符串的列表中

转载于:https://blog.51cto.com/12942223/2370340

你可能感兴趣的文章
111
查看>>
关于Expression Tree和IL Emit的所谓的"性能差别&quot“.NET研究”;
查看>>
计算几何
查看>>
【搜索】调手表
查看>>
快放弃的第二天手动微笑
查看>>
实例属性和类属性的理解
查看>>
SpringMVC中servletFileUpload.parseRequest(request)解析为空获取不到数据问题
查看>>
实验一 网络对抗
查看>>
关于typedef的用法总结(转)
查看>>
iOS面试用到的一些知识点和技术
查看>>
[树形DP]Luogu P1131 [ZJOI2007]时态同步
查看>>
C++值传递与引用传递
查看>>
sharepoint2010 沙盒解决方案与场解决方案之间的差异
查看>>
Javascript学习二:事件
查看>>
页面局部定时刷新
查看>>
Luogu P4316 绿豆蛙的归宿//期望
查看>>
关于二叉树求四则运算
查看>>
CocoaPods安装第三方出错:XCode7.3
查看>>
Seay源代码审计系统的配置和安装
查看>>
HDU 5144 NPY and shot(物理运动学+三分查找)
查看>>