翼度科技»论坛 编程开发 python 查看内容

python 和shell 变量互相传递

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
主要介绍python和shell变量互相传递方法,使用了环境变量、管道等方法。
python -> shell:

1.环境变量
  1. import os
  2. var=123或var='123'
  3. os.environ['var']=str(var)  #environ的键值必须是字符串  
  4. os.system('echo $var')  
复制代码
2.字符串连接
  1. import os
  2. path='/root/a.txt'
  3. var=[1]
  4. var='bash'
  5. os.system('echo ' + path)                  #注意echo后有空格
  6. os.system('echo ' + str(var[0]))
  7. os.system('echo ' + var + ' /root/c.sh') #注意echo后和/root前有空格   
复制代码
3.通过管道
  1. import os
  2. var='123'
  3. os.popen('wc -c', 'w').write(var)  
复制代码
4.通过文件
  1. output = open('/tmp/mytxt', 'w')
  2. output.write(S)      #把字符串S写入文件
  3. output.writelines(L) #将列表L中所有的行字符串写到文件中
  4. output.close()  
复制代码
5.通过重定向标准备输出
  1. buf = open('/root/a.txt', 'w')
  2. print >> buf, '123\n', 'abc'
  3. =================================
复制代码
或者:
  1. print >> open('/root/a.txt', 'w'), '123\n', 'abc' #写入或生成文件
  2. print >> open('/root/a.txt', 'a'), '123\n', 'abc' #追加  
复制代码
shell -> python:

1.管道
  1. import os
  2. var=os.popen('echo -n 123').read( )
  3. print var  
复制代码
2.commands
  1. import commands
  2. var=commands.getoutput('echo abc')       #输出结果  
  3. var=commands.getstatusoutput('echo abc') #退出状态和输出结果
复制代码
3.文件
  1. input = open('/tmp/mytxt', 'r')
  2. S = input.read( )      #把整个文件读到一个字符串中
  3. S = input.readline( )  #读下一行(越过行结束标志)
  4. L = input.readlines( ) #读取整个文件到一个行字符串的列表中  
复制代码
shell脚本中执行python脚本并接收其返回值的例子

在hello.py中通过返回值 让shell脚本通过参数来判断,
hello.py这样写
  1. import sys
  2. #学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441
  3. def main():
  4.     try:
  5.         print "hello"
  6.         sys.exit(0)
  7.     except:
  8.         sys.exit(1)
  9. if __name__=='__main__':
  10.     main()
复制代码
shell 脚本改为
  1. python hello.py
  2. if [ $?==0 ];then
  3.     exit
  4. else
  5.         python world.py      
  6. fi
复制代码
就可以判断了

来源:https://www.cnblogs.com/python1111/p/18027586
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具