python[sys模块使用]:配置subprocessing实现后台调用python函数,并传递次数

2023-09-14 10:42:45

一、sys模块的基本使用

1、获取脚本执行时传递的所有参数:

sys.argv[0]  #表示程序自身

sys.argv[1:] #表示的是在脚本运行py文件时,传递进来的所有参数

2、sys.exit(n) 退出程序,exit(0) 是正常退出

3、sys.version:获取python解释程序版本

4、sys.platform :返回操作系统平台名称

5、sys.stdin.readline(): 相当于input函数,区别在于input不会读入\n,

import sys
# sys.stdin.readline() 
name1 = sys.stdin.readline()		
name2 = input('请输入:')
 
print(len(name1))		
print(len(name2))
 
#结果
1、输入:lgw
2、输入: lgw

打印的结果:
4
3

#结论
1、input在输入数据时,不会将最后的回车(\n) 算入到键入的数据中
2、sys.stdin.readline()	输入数据时,会将最后的回车(\n)算入到键入的数据中

所以,即使输入相同的数据时,input的数据长度永远比sys.stdin.readline小1

6、sys.stdout.write('字符串'+'\n')  跟 print('字符串') 效果一样

二、subprocessing+sys

将这两个结合,就可以在一个py文件中,调用另一个py文件的主函数,并且可以传递参数给被调用的py文件,且被调用的py文件是后台运行。

例子:

test

        |--- write_file.py

        |--- start.py

1、write_file.py是专门用来写文件模块

2、start.py 是主要运行的模块

start.py:

# main.py

import subprocess

def main():
    # 要传递的参数列表
    args = ['数据1','数据2']

    # 启动后台进程并传递参数
    p = subprocess.Popen(['python', r'C:\data\project\test\write_file.py'] + args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

    # 获取后台进程的输出
    stdout, stderr = p.communicate()

    # 输出结果
    if stdout.decode():
        print('执行成功')
    if stderr.decode():
        print(f'执行失败:{stderr.decode()}')

if __name__ == '__main__':
    main()

write_file.py:

import sys

def main(name,age):
    with open('1.txt','w+') as fp:
        fp.write(f'{name}-{age}')

if __name__ == '__main__':
    my_self = sys.argv[0] #表示程序自身,就当前模块了
    args = sys.argv[1:] #表示在运行该py文件时,传递进来的参数
    main(args[0],args[1])

运行效果:

1、成功:后台输出
执行成功

2、失败:后台输出

执行失败:python: can't open file 'C:\data\project\python_tool\后台运行\others.py': [Errno 2] No such file or directory

更多推荐

Python中两个最常用的单元测试框架unittest和pytest

这篇文章的主要目的是讨论Python中两个最常用的单元测试框架unittest和pytest,它们的优缺点以及在何时选择哪个框架。PythonunittestvsPytest在编写任何软件时,我们必须在开发过程中保持错误检查的过程。这确保了一旦软件达到发布阶段,在使用过程中遇到的错误数量最小。Python也有各种测试框

北京君正应用案例:联想新款Yoga Book 9i亮相 CES

国际消费电子展(CES),被誉为年度消费电子行业“风向标”。在今年CES2023上,联想旗下多款创新产品正式亮相,带来最前沿的趋势与技术体验。特别是新款YogaBook9i的发布,采用了双面13英寸OLED屏的设计,可以一起用作大型平板电脑,也可以与可连接的蓝牙键盘配对,用作双屏笔记本电脑。YogaBook9i能够帮助

Vue2+ElementUI 静态首页案例

源码<template><divclass="app-containerhome"><el-rowtype="flex"justify="space-around"class="row-bg"><el-cardclass="box-cardcardDiv1"><el-col:span="5"><divclass="bo

第一百五十回 自定义组件综合实例:游戏摇杆一

文章目录概念介绍实现方法示例代码我们在上一章回中介绍了自定义组件相关的内容,本章回中将综合使用这些内容自定义游戏摇杆组件.闲话休提,让我们一起TalkFlutter吧。概念介绍我们介绍的游戏摇杆就是一个内层的小圆嵌套一个外层的大圆,大圆的位置不变,小圆只能在大圆所在的范围进行移动,它移动的角度是360度,因此在游戏中使

LeetCode算法心得——连续数组(前缀和+HashMap)

大家好,我是晴天学长,公式的巧妙化简加上hashmap的灵活应用,需要的小伙伴可以关注支持一下哦!后续会继续更新的。1).连续数组给定一个二进制数组nums,找到含有相同数量的0和1的最长连续子数组,并返回该子数组的长度。示例1:输入:nums=[0,1]输出:2说明:[0,1]是具有相同数量0和1的最长连续子数组。示

C语言程序设计(第五版)书上习题及课后习题与答案汇总(只涉及程序编写部分)--持续更新

课后例题推荐B站视频:https://www.bilibili.com/video/BV1ih411y7gN第一章程序设计和C语言书上例题1.求两个整数之和#include<stdio.h>intmain(){inta,b,sum;a=123;b=456;sum=a+b;printf("sumis%d\n",sum);

[python 刷题] 242 Valid Anagram

[python刷题]242ValidAnagram题目:Giventwostringssandt,returntrueiftisananagramofs,andfalseotherwise.AnAnagramisawordorphraseformedbyrearrangingthelettersofadifferent

探索智能应用的基石:多模态大模型赋能文档图像处理

目录0写在前面1文档图像分析新重点2token荒:电子文档助力大模型3大模型赋能智能文档分析4文档图像大模型应用可能性4.1专有大模型4.2多模态模型4.3设计思路总结0写在前面中国智能产业高峰论坛(CIIS@2023)旨在为政企研学各界学者专家提供同台交流的机会,在成果分享、观点碰撞、经验互鉴中,共促智能科技引领行业

appium默认60秒关闭应用的问题

【软件测试行业现状】2023年了你还敢学软件测试?未来已寄..测试人该何去何从?【自动化测试、测试开发、性能测试】问题:appium默认启动一个应用的session过期时间是60秒到时间会自动停了刚启动的应用,工作台打印:info:[debug]Weshutdownbecausenonewcommandscamein的

<C++> 红黑树模拟实现map和set

使用一颗红黑树同时封装map和set。红黑树源码#pragmaonce#include<cassert>#include<iostream>#include<utility>usingnamespacestd;//红黑树结点颜色enumColour{RED,BLACK,};template<classK,classV>

【直播预约中】 腾讯大数据 x StarRocks|构建新一代实时湖仓

随着信息时代的兴起,数据已成为推动业务决策和创新的核心要素;结构化、半结构化等多种类型的数据呈现爆炸式增长,如何高效处理和分析海量数据已经成为关键挑战,结合传统数仓与数据湖优势的湖仓一体(Lakehouse)架构崭露头角,成为大数据领域势不可挡的趋势;基于湖仓一体架构,企业可以基于一份数据,满足BI报表、交互式数据探查

热文推荐