首页 > 系统相关 >python 和shell 变量互相传递

python 和shell 变量互相传递

时间:2024-02-22 16:27:05浏览次数:38  
标签:shell 变量 python echo 123 var os

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

python -> shell:

1.环境变量

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前有空格   

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.commands

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

shell脚本中执行python脚本并接收其返回值的例子

在hello.py中通过返回值 让shell脚本通过参数来判断,
hello.py这样写

import sys
#学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441
def main():
    try:
        print "hello"
        sys.exit(0)
    except:
        sys.exit(1)
 
if __name__=='__main__':

    main()

shell 脚本改为

python hello.py
if [ $?==0 ];then
    exit
else
        python world.py       

fi

就可以判断了

标签:shell,变量,python,echo,123,var,os
From: https://www.cnblogs.com/python1111/p/18027586

相关文章

  • 第1章 Python入门
    Python介绍·简介Python是一种解释型、面向对象的语言。由吉多·范罗苏姆(GuidovanRossum)于1989年发明,1991年正式公布。官网:www.python.orgPython单词是“大蟒蛇”的意思。但是龟叔不是喜欢蟒蛇才起这个名字,而是正在追剧:英国电视喜剧片《蒙提·派森的飞行马戏团》(MontyPyt......
  • Python数据类型中bytes 与 bytearray
    在Python中,我们可以使用bytes和bytearray两种数据类型来处理二进制数据。bytes是一个不可变的序列类型,而bytearray是一个可变的序列类型。本文将介绍如何使用Python来创建、操作和转换bytes和bytearray。bytes:可以看作是一组二进制数值(0-255)的str序列bytearray:可以看......
  • 如何在python中判断一个字符串是否可以转换为数字
    方法一:isdigit()不可识别汉字小数类型str1='1'str2='2.1'str3='三'str4='3.3.3.3'print(str1.isdigit())print(str2.isdigit())print(str3.isdigit())print(str4.isdigit())结果:TrueFalseFalseFalse方法二:isdecim......
  • python包管理利器poetry和conda使用简介
     #基本信息 conda相对于主流的虚拟环境管理工具,在python开发环境中最大的特点便是“不需要安装python”。但这并不意味着conda不需要python来运行脚本,而是conda不会依赖于系统中已经存在的python进行运行。因此conda拥有较高的独立性以及强悍的跨版本支持......
  • python—unittest—数据驱动ddt
    ddt(datadrivertest)1.介绍ddt其实就是一个装饰器,它会根据你传递进来的数据来决定要生成几个测试用例2.安装pipinstallddt3.使用@ddt:装饰测试类(把具体的类名传递给ddt,告诉ddt这个测试用例要使用数据驱动)@data:装饰测试用例(把测试数据作为一个参数传递给测试用例)@uppac......
  • Python下载安装教程
    1.下载地址官方下载地址:https://www.python.org/downloads/国内镜像地址:https://mirrors.huaweicloud.com/python/,win选择好版本后,不论是Intel还是AMD处理器,都下载amd64.exe版本的安装包;2.安装双击执行.exe文件,勾选添加环境变量选择安装目录:3.检测cmd输入python命令,出现......
  • python写数据到kingbase
     操作kingbase与操作pg一样,需要psycopg2这个包#!/usr/bin/envpython#coding=utf-8importos,json,urllib,datetime,shutilimportpsycopg2importtracebackimporttime##createtabletb_test##(##idbigserialprimarykeynotnull,##name1varchar(32),##n......
  • python 图片转文字小工具
    应群友要求,要做一个图片转文字的格式,因为有些人的简历中只有一张图片要提取他里面的文字就不好办了。于是就有了下面这个小工具:功能:选择要识别的图片后,识别出来后存到.txt文本中。实现原理,基于百度“文字识别”通用版的api接口调用。有一点需要说明的是可能无法识别百分百准确......
  • 基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的玉米病虫害检测系统(Python+PySide6界面+训练代码)
    摘要:本文介绍了一种基于深度学习的玉米病虫害检测系统系统的代码,采用最先进的YOLOv8算法并对比YOLOv7、YOLOv6、YOLOv5等算法的结果·,能够准确识别图像、视频、实时视频流以及批量文件中的玉米病虫害。文章详细解释了YOLOv8算法的原理,并提供了相应的Python实现代码、训练数据集,以......
  • 2024-02-21-物联网Shell语言(2-系统调用)
    2.系统调用2.1系统编程概述操作系统的职责:操作系统用来管理所有的资源,并将不同的设备和不同的程序关联起来Linux系统编程:在有操作系统打的环境下编程,并使用操作系统提供的系统调用及库函数,对系统资源进行访问系统编程就是为了让用户更方便的操作硬件设备,并且对硬件设备起到......