前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python-通过命令行执行模块并传参

python-通过命令行执行模块并传参

原创
作者头像
cg错过
修改2020-11-27 18:05:47
5610
修改2020-11-27 18:05:47
举报
文章被收录于专栏:程序笔记程序笔记
前言

来自自己的笔记, 搬运过来

正文如下

首先, 如果需要执行一个模块, 则该模块文件中必须要定义if __name__ == __main__:来调用需执行的方法(若无则执行无任何输出)

如我定义了一个doTest.py文件, 存放路径D:/new-company/work/python/idle/doTest.py

其代码内容如下

代码语言:javascript
复制
def fib(n):    # write Fibonacci series up to n
    a, b = 0, 1
    while b < n:
        print(b, end=' ')
        a, b = b, a+b
    print()

def fib2(n):   # return Fibonacci series up to n
    result = []
    print(n)
    a, b = 0, 1
    while b < n:
        result.append(b)
        a, b = b, a+b
    return result


if __name__ == "__main__":
    import sys
    print(sys.argv)
    print(sys.argv[0])
    listResult = fib2(int(sys.argv[1]))
    print(listResult)

那么我在cmd中进行以下测试

  1. doTest.py的文件夹中执行
代码语言:javascript
复制
D:\new-company\work\python\idle>python3 doTest.py 3
['doTest.py', '3']
3
[1, 1, 2]

D:\new-company\work\python\idle>
  1. 在别的目录进行执行
代码语言:javascript
复制
C:\Users\4399-3046>python3 D:/new-company/work/python/idle/doTest.py 4
['D:/new-company/work/python/idle/doTest.py', '4']
D:/new-company/work/python/idle/doTest.py
4
[1, 1, 2, 3]

C:\Users\4399-3046>

通过上面的输出可以看到sys.argv这是个数组集合, 元素内容解释如下

  • 第一个元素为存放的为路径, 此路径为执行目录处到被执行文件目录的路径 + 被执行文件名
  • 往后的元素存放的为执行次模块所传入的参数, 且按照顺序存放

首发来自公众号: 程序员品

欢迎关注
欢迎关注

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档