如何从Python的cmd中获得.py文件参数

 更新时间:2021年05月25日 11:07:35   作者:橘子甜不甜  
这篇文章主要介绍了如何从Python的cmd中获得.py文件参数操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

代码:

import sys  # 导入系统模块获得cmd的参数
import traceback
def TEST(params):
    print(type(params))
 
if __name__ == '__main__':
    try:
        params = None
        # 获得传入参数
        if len(sys.argv) > 1:
            params_str = ''
            for i in range(1, len(sys.argv)):
                params_str += sys.argv[i]
            if params_str.startswith('''{''') and params_str.endswith('''}'''):
                params = eval(params_str)
                print('''test方法接收参数为:''', params)
                TEST(params)
            else:
                print('''test参数格式不合法:''', params_str)
    except Exception as ex:
        print('''test - 执行异常''', ex)
        traceback.print_exc()

方式1: 借助Run/Debug Configuration 窗口输入参数

方法一的运行结果:

方法二: 借助Terminal 输入命令获取参数-----运行结果

补充:PyQt5 python运行cmd命令 传入参数 获取cmd结果 重定向 运行另一个python文件

写在前面

如果运行的cmd输出不多,可以考虑使用subprocess(也可以重定向)

我选择os.popen()的原因是我需要运行的py文件在cmd会输出很多内容,而且我需要对这些内容作处理,相比起使用subprocess,使用os.popen()会更快一些。

代码(不传入参数)

def useCmd(self):
 f = os.popen(r"python test.py", "r")#把文件放在与当前py文件所在的同级目录下才能用相对路径
 # 通过管道的方式来调用cmd,函数返回一个file对象,里面的内容是脚本输出的内容(可简单理解为echo输出的内容)
 # 读文件
 d = f.read()  #没有这一句可能会报错,如果没报错,当我没说。 → detection mode
 # print(d)
 #关闭文件
 f.close()  

代码(传入参数)

如何在使用命令调用cmd时传入参数?

直接在popen()的第一个参数中继续补充就行了。你可以把这一个字符串看作是直接在cmd终端敲入的命令

def useCmd(self):
 f = os.popen(r"python test.py --image", "r")#这里的参数是--image
 # 通过管道的方式来调用cmd,函数返回一个file对象,里面的内容是脚本输出的内容(可简单理解为echo输出的内容)
 # 读文件
 d = f.read()  #没有这一句可能会报错,如果没报错,当我没说。 → detection mode
 # print(d)
 #关闭文件
 f.close()  

补充

这条语句对我来说行不通

system("python test.py")

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python3连接kafka模块pykafka生产者简单封装代码

    python3连接kafka模块pykafka生产者简单封装代码

    今天小编就为大家分享一篇python3连接kafka模块pykafka生产者简单封装代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • Opencv实现二维直方图的计算及绘制

    Opencv实现二维直方图的计算及绘制

    这篇博客将介绍如何使用Opencv进行二维直方图的计算及绘制,维直方图可以让我们对不同的像素密度有更好的了解,感兴趣的可以了解一下
    2021-07-07
  • pandas DataFrame实现几列数据合并成为新的一列方法

    pandas DataFrame实现几列数据合并成为新的一列方法

    今天小编就为大家分享一篇pandas DataFrame实现几列数据合并成为新的一列方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python3+Django get/post请求实现教程详解

    Python3+Django get/post请求实现教程详解

    这篇文章主要介绍了Python3+Django get/post请求实现教程详解,需要的朋友可以参考下
    2021-02-02
  • python爬虫实战之制作属于自己的一个IP代理模块

    python爬虫实战之制作属于自己的一个IP代理模块

    Python爬虫常常会面临自己ip地址被封的情况,也许不懂的读者就只能等ip解封之后再进行接下来的操作了,为什么自己不做一个Python模块专门用于处理这种情况呢?文中对于读者开发Python爬虫肯定有一定的帮助,希望读者耐心看下去,需要的朋友可以参考下
    2021-06-06
  • kali最新国内更新源sources

    kali最新国内更新源sources

    这篇文章主要介绍了kali最新国内更新源sources的相关资料,需要的朋友可以参考下
    2023-03-03
  • Python基础之getpass模块详细介绍

    Python基础之getpass模块详细介绍

    最近在看Python标准库官方文档的时候偶然发现了这个模块。仔细一看内容挺少的,只有两个主要api,就花了点时间阅读了一下源码,感觉挺实用的,在这安利给大家。下面这篇文章主要给大家介绍了关于Python基础之getpass模块的相关资料,需要的朋友可以参考下。
    2017-08-08
  • Python基础常用内建函数图文示例解析

    Python基础常用内建函数图文示例解析

    这篇文章主要为大家Python常用内建函数,文中通过图例详细的给大家作出了讲解分析,有需要的朋友可以借鉴参考下,希望可以有所帮助
    2021-09-09
  • VS2022编译安装Qt6.5源码教程

    VS2022编译安装Qt6.5源码教程

    这篇文章主要介绍了VS2022编译安装Qt6.5源码,在这里解压方式可以使用7z解压,也可以使用MinGW中的tar进行解压,本文给大家介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • pytorch 实现情感分类问题小结

    pytorch 实现情感分类问题小结

    本文主要介绍了pytorch 实现情感分类问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02

最新评论