python和shell变量互相传递的几种方法

python -> shell:

1.环境变量

代码如下:

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

代码如下:

import os 
var=123或var='123'
os.environ['var']=str(var)  #environ的键值必须是字符串 
os.system('echo $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前有空格

代码如下:

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)

代码如下:

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()

代码如下:

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'

代码如下:

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' #追加

代码如下:

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

代码如下:

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

2.


代码如下:

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

代码如下:

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( ) #读取整个文件到一个行字符串的列表中

代码如下:

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

(0)

相关推荐

  • python字符串连接的N种方式总结

    python中有很多字符串连接方式,今天在写代码,顺便总结一下: 最原始的字符串连接方式:str1 + str2 python 新字符串连接语法:str1, str2 奇怪的字符串方式:str1 str2 % 连接字符串:'name:%s; sex: ' % ('tom', 'male') 字符串列表连接:str.join(some_list) 第一种,想必只要是有编程经验的人,估计都知道,直接用 "+" 来连接两个字符串: 'Jim' + 'Green' = 'JimGreen' 第

  • python 字符串split的用法分享

    比如我们的存储的格式的: 格式的: 姓名,年龄|另外一个用户姓名,年龄 name:haha,age:20|name:python,age:30|name:fef,age:55 那我们可以通过字符串对象的split方法切割字符串对象为列表. a = 'name:haha,age:20|name:python,age:30|name:fef,age:55' print a.split('|') 返回结果:['name:haha,age:20', 'name:python,age:30', 'name

  • Python中用format函数格式化字符串的用法

    自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足.那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱. 语法 它通过{}和:来代替%. "映射"示例 通过位置 In [1]: '{0},{1}'.format('kzc',18) Out[1]: 'kzc,18' In [2]: '{},{}'.format('kzc',18) Out[2]: 'kzc,18' In [3]: '{1},{0},{1}'.fo

  • Python读取环境变量的方法和自定义类分享

    使用os.environ来读取和修改环境变量: 复制代码 代码如下: import os print (os.environ["TEMP"]) mydir = "c:\\mydir" os.environ["MYDIR"] = mydir print (os.environ["MYDIR"]) pathV = os.environ["PATH"] print (pathV) os.environ["

  • python的类变量和成员变量用法实例教程

    本文实例形式讲解了python的类变量和成员变量用法,对于Python程序设计有一定的参考价值.分享给大家供大家参考.具体如下: 先看看下面这段代码: class TestClass(object): val1 = 100 def __init__(self): self.val2 = 200 def fcn(self,val = 400): val3 = 300 self.val4 = val self.val5 = 500 if __name__ == '__main__': inst =

  • python中的实例方法、静态方法、类方法、类变量和实例变量浅析

    注:使用的是Python2.7. 一.实例方法 实例方法就是类的实例能够使用的方法.如下: 复制代码 代码如下: class Foo:    def __init__(self, name):        self.name = name    def hi(self):        print self.name if __name__ == '__main__':    foo01 = Foo('letian')    foo01.hi()    print type(Foo)    p

  • Python 字符串操作方法大全

    1.去空格及特殊符号 复制代码 代码如下: s.strip().lstrip().rstrip(',') 2.复制字符串 复制代码 代码如下: #strcpy(sStr1,sStr2)sStr1 = 'strcpy'sStr2 = sStr1sStr1 = 'strcpy2'print sStr2 3.连接字符串 复制代码 代码如下: #strcat(sStr1,sStr2)sStr1 = 'strcat'sStr2 = 'append'sStr1 += sStr2print sStr1 4.查

  • Python中使用动态变量名的方法

    如果要写一个程序,让x1为1,x2为2,然后直到x100为100,你会怎么做? 在C这种静态语言里,变量名这个标识符实际上会被编译器直接翻译成内存地址,所以除了手动设置每个变量的值以外,没办法做到这点.而Python这种动态语言则是可以做到的. 最容易想到的自然是eval,但是实际上根本不需要这种危险的东西,因为Python的变量名就是一个字典的key而已.要获取这个字典,直接用locals和globals函数即可. 因此这个程序可以这样实现: 复制代码 代码如下: >>> names

  • Python中请使用isinstance()判断变量类型

    一.isinstance() 在Python中可以使用type()与isinstance()这两个函数判断对象类型,而isinstance()函数的使用上比type更加方便. 复制代码 代码如下: # coding=utf-8   a = 10   def b():     pass   print isinstance(a,(int,str)) print isinstance(a,(float,str)) print isinstance(b,(str,int))   class c:   

  • Python变量和字符串详解

    几个月前,我开始学习个人形象管理,从发型.妆容.服饰到仪表仪态,都开始做全新改造,在塑造个人风格时,最基础的是先了解自己属于哪种风格,然后找到参考对象去模仿,可以是自己欣赏的人.明星或模特等,直至最后去创新,形成自己独特的个人风格. 学习Python也是一样.开始学习一门新的语言,最便捷的方法是去模仿,继而在模仿中出创新.在初期模仿的过程中,务必要做到亲自敲下每一行代码,打出每一个标点符号,而不是简单的一目十行,不实际操作,这样即使看完整本书,或许依然写不出程序. 这是关于Python的第2篇文

随机推荐