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


Posted in Python onNovember 20, 2013

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

Python 相关文章推荐
python冒泡排序算法的实现代码
Nov 21 Python
使用Python的Flask框架实现视频的流媒体传输
Mar 31 Python
Python中使用PyQt把网页转换成PDF操作代码实例
Apr 23 Python
使用Python编写一个最基础的代码解释器的要点解析
Jul 12 Python
深入浅出学习python装饰器
Sep 29 Python
python构建深度神经网络(续)
Mar 10 Python
python matplotlib画图库学习绘制常用的图
Mar 19 Python
python获取微信企业号打卡数据并生成windows计划任务
Apr 30 Python
Python 脚本的三种执行方式小结
Dec 21 Python
如何在django中添加日志功能
Feb 06 Python
详解Python中Pyyaml模块的使用
Oct 08 Python
python微信智能AI机器人实现多种支付方式
Apr 12 Python
利用soaplib搭建webservice详细步骤和实例代码
Nov 20 #Python
python从ftp下载数据保存实例
Nov 20 #Python
python正则表达式抓取成语网站
Nov 20 #Python
python爬取网站数据保存使用的方法
Nov 20 #Python
使用python搭建Django应用程序步骤及版本冲突问题解决
Nov 19 #Python
python解析json实例方法
Nov 19 #Python
python聊天程序实例代码分享
Nov 18 #Python
You might like
使用php4加速网络传输
2006/10/09 PHP
php 代码优化的42条建议 推荐
2009/09/25 PHP
sphinx增量索引的一个问题
2011/06/14 PHP
php 伪静态之IIS篇
2014/06/02 PHP
smarty缓存用法分析
2014/12/16 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
PHP删除字符串中非字母数字字符方法总结
2019/01/20 PHP
Laravel中9个不经常用的小技巧汇总
2019/04/16 PHP
PHP使用递归按层级查找数据的方法
2019/11/10 PHP
JavaScript RegExp方法获取地址栏参数(面向对象)
2009/03/10 Javascript
jquery validate使用攻略 第四步
2010/07/01 Javascript
JavaScript实现网页上的浮动广告的简单方法
2013/06/14 Javascript
node.js中的fs.chownSync方法使用说明
2014/12/16 Javascript
javascript图片预加载完整实例
2015/12/10 Javascript
JS显示日历和天气的方法
2016/03/01 Javascript
vue2.0开发实践总结之入门篇
2016/12/06 Javascript
自定义vue全局组件use使用、vuex的使用详解
2017/06/14 Javascript
js实现水平滚动菜单导航
2017/07/21 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
vue2.0 axios跨域并渲染的问题解决方法
2018/03/08 Javascript
vue组件暴露和.js文件暴露接口操作
2020/08/11 Javascript
django ajax json的实例代码
2018/05/29 Python
Python3远程监控程序的实现方法
2019/07/15 Python
HTML5 实战PHP之Web页面表单设计
2011/10/09 HTML / CSS
HTML5之SVG 2D入门4—笔画与填充
2013/01/30 HTML / CSS
贝玲妃美国官方网站:Benefit美国
2016/08/28 全球购物
Carter’s OshKosh加拿大:购买婴幼儿服装和童装
2018/11/27 全球购物
行政助理的职责
2013/11/14 职场文书
测控技术与通信工程毕业生自荐信范文
2013/12/28 职场文书
大学四年职业生涯规划书范文
2014/01/02 职场文书
工伤事故处理协议书怎么写
2014/10/15 职场文书
2016年暑假学生家长评语
2015/12/01 职场文书
浅谈Golang 嵌套 interface 的赋值问题
2021/04/29 Golang
HashMap实现保存两个key相同的数据
2021/06/30 Java/Android
vue生命周期钩子函数以及触发时机
2022/04/26 Vue.js