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中for循环详解
Jan 17 Python
python使用socket连接远程服务器的方法
Apr 29 Python
Python实现多线程抓取网页功能实例详解
Jun 08 Python
python爬虫_微信公众号推送信息爬取的实例
Oct 23 Python
tensorflow实现逻辑回归模型
Sep 08 Python
详解Numpy中的广播原则/机制
Sep 20 Python
Python实例方法、类方法、静态方法的区别与作用详解
Mar 25 Python
python处理excel绘制雷达图
Oct 18 Python
Python创建一个元素都为0的列表实例
Nov 28 Python
基于keras输出中间层结果的2种实现方式
Jan 24 Python
Matlab中plot基本用法的具体使用
Jul 17 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
PHP 多维数组的排序问题 根据二维数组中某个项排序
2011/11/09 PHP
php笔记之:有规律大文件的读取与写入的分析
2013/04/26 PHP
php无限遍历目录示例
2014/02/21 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
2014/11/28 PHP
PHP中应该避免使用同名变量(拆分临时变量)
2015/04/03 PHP
php生成mysql的数据字典
2016/07/07 PHP
php通过PHPExcel导入Excel表格到MySQL数据库的简单实例
2016/10/29 PHP
PHP实现的简单在线计算器功能示例
2017/08/02 PHP
PHP PDOStatement::bindColumn讲解
2019/01/30 PHP
JavaScript打印iframe内容示例代码
2013/08/20 Javascript
JS数组的常见用法实例
2015/02/10 Javascript
JavaScript三元运算符的多种使用技巧
2015/04/16 Javascript
nodejs 最新版安装npm 的使用详解
2018/01/18 NodeJs
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
2020/01/08 Javascript
JS组件库AlloyTouch实现图片轮播过程解析
2020/05/29 Javascript
javascript使用canvas实现饼状图效果
2020/09/08 Javascript
[02:51]2014DOTA2 TI小组赛总结中国军团全部进军钥匙球馆
2014/07/15 DOTA
[51:17]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
2019/07/22 Python
python是怎么被发明的
2020/06/15 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
Python实现扫码工具的示例代码
2020/10/09 Python
编辑个人求职信范文
2013/09/21 职场文书
青春无悔演讲稿
2014/05/08 职场文书
法学专业求职信
2014/07/15 职场文书
群众对十八届四中全会的期盼
2014/10/17 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
小学教育见习总结
2015/06/23 职场文书
2015年教师国培感言
2015/08/01 职场文书
初中政治教学工作总结
2015/08/13 职场文书
幼儿园2016年感恩节活动总结
2016/04/01 职场文书
2019年“红色之旅”心得体会1000字(3篇)
2019/09/27 职场文书
详解缓存穿透击穿雪崩解决方案
2021/05/28 Redis
Nginx location 和 proxy_pass路径配置问题小结
2021/09/04 Servers
Redis超详细讲解高可用主从复制基础与哨兵模式方案
2022/04/07 Redis