精华内容
下载资源
问答
  • sys.argv

    2020-09-22 16:32:17
    sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键,所以那些试图从代码来说明它作用的解释一直没看明白。因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys....

    sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键,所以那些试图从代码来说明它作用的解释一直没看明白。因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。

    下面我们通过一个极简单的test.py程序的运行结果来说明它的用法。

    1 #test.py
    2 
    3 import sys
    4 a=sys.argv[0]
    5 print(a)

     将test.py保存在c盘的根目录下。

    在程序中找到 ‘运行’->点击->输入"cmd"->回车键   进入控制台命令窗口(如下图),先输入cd c:\   (作用是将命令路径改到c盘根目录),然后输入test.py运行我们刚刚写的程序:

      得到的结果是C:\test.py,这就是0指代码(即此.py程序)本身的意思。

      然后我们将代码中0改为1 :

      a=sys.argv[1]

      保存后,再从控制台窗口运行,这次我们加上一个参数,输入:test.py what

     得到的结果就是我们输入的参数what,看到这里你是不是开始明白了呢。

     那我们再把代码修改一下:

     a=sys.argv[2:]

     保存后,再从控制台窗台运行程序,这次多加几个参数,以空格隔开:

     test.py a b c d e f

     得到的结果为[‘b’, ’c’, ’d’, ’e’, ’f’]

       Sys.argv[ ]其实就是一个列表,里边的项为用户输入的参数,关键就是要明白这参数是从程序外部输入的,而非代码本身的什么地方,要想看到它的效果就应该 将程序保存了,从外部来运行程序并给出参数。

    展开全文
  • Python之sys.argv[0]、sys.argv[1]分别代表什么

    万次阅读 多人点赞 2018-11-29 19:41:46
    1、本来想执行脚本的时候,传进来参数,利用sys模块就可以读取传进来的参数,我首先用的是sys.argv[0] import sys alu_path = sys.argv[0] 模块文件:install_app_v1.0_crush.py 2、脚本执行命令 python ...

    结论

    argv[0]代表模块文件名、argv[1]代表传入的第一个命令行参数

    详解:argv是sys模块的一个全局变量,也称sys模块的一个属性!argv本身为一个list类型的对象,该对象持有的第1个元素是命令行中传入的模块名、从第2个元素开始(含),均为命令行中传入的参数!

    注意:argv持有的每个元素的类型均为str(字符串)

     

    举个例子

    python temp.py a b c d

    说明:命令行运行temp.py模块,同时传入4个参数:a、b、c、d 

    sys.argv == ["temp.py","a","b","c","d"]  #sys.argv是持有5个元素的list对象

    sys.argv[0]  == "temp.py"   #第1个元素为模块名“temp.py”

    sys.argv[1] == "a"               #第2个元素为"a"

    sys.argv[2] == "b"               #第3个元素为"b"

    sys.argv[3] == "c"               #第4个元素为"c"

    sys.argv[4] == "d"               #第5个元素为"d"

     

     

     

     

    展开全文
  • 今天有刚学python的朋友问我他的python怎么运行报错他的源代码是:import sys #导入sys模块input_file = sys.argv[1] output_file = sys.argv[2]with open(input_file,'r',newline='') as filereader: with open...

    今天有刚学python的朋友问我他的python怎么运行报错

    他的源代码是:

     

    import sys #导入sys模块
    
    input_file = sys.argv[1]
    output_file = sys.argv[2]
     
    with open(input_file,'r',newline='') as filereader:
    with open(output_file,'w',newline='') as filewriter:
    header = filereader.readline()
    header = header.strip()
    header_list = header.split(',')
    print(header_list)
    for row in filereader:
    row = row.strip(',')
    row_list = row.split(',')
    print(row_list)
    filewriter.write(','.join(map(str,row_list))+'\n')

     

    我也不知道源代码错还是对,但是他运行直接运行py文件,之后就不用想报错啊

        input_file =  sys.argv[1]
    
    IndexError: list index out of range

    原因是input_file 是其读取文件的文件名没有输入,但这个是由sys.argv[1]接受,所以会报错。

    下面说明python的sys模块sys.argv[0]、sys.argv[1]、sys.argv[2]是什么意思、该怎么理解?

    看一下python代码:

    
    import sys
    
    test = sys.argv[0]
    test1 = sys.argv[1]
    test2 = sys.argv[2]
    print(test)
    print(test1)
    print(test2)
     

    运行这个py文件,直接运行也会报错

    然后我们这样运行

    会打印出信息并不会报错这是为什么尼?

    test打印的信息是:文件路径

    test1打印的信息是:111

    test2打印的信息是:222

    这才知道sys.argv[0]接收的是文件名(如果运行文件和运行终端不在同一路径下会接收其的路径及文件名)

    sys.argv[1] 接收的的在终端传入的第一个参数

    sys.argv[1]接收的的在终端传入的第二个参数

    在看下面代码,进一步进行了解

    import sys
    
    list1 = ["111","222","333"]
    print(list1)
    print(list1[0])
     
    list2 = sys.argv
    print(list2)
    print(list2[1])
    print(sys.argv[1])

    采用上述方法运行,会有如下图结果

    这才恍然大悟原来sys模块sys.argv是个列表,而sys.argv[0]、sys.argv[1]、sys.argv[2]只不过是在取列表中的值,但这个列表有我们决定。

    这才朋友的那个运行应该是这样的:test.py 1.txt 2.txt

    展开全文
  • Python sys.argv用法实例

    2020-12-25 14:00:27
    sys.argv变量是一个字符串的列表。特别地,sys.argv包含了命令行参数 的列表,即使用命令行传递给你的程序的参数。 这里,当我们执行python using_sys.py we are arguments的时候,我们使用python命令运行using_sys....
  • 下面以sys.argv[0],sys.argv[1],sys.argv[1:]进行具体分析,你也可以做其他尝试。 首先打开一个新的文件编辑器窗口,输入下面的代码,将其保存为test.py。 import sys print(sys.argv[0]) 用命令行找到test.py...
  • 复制代码 代码如下:#diff.py#!...file1 = sys.argv[1]file2 = sys.argv[2] list1 = {}for line in open(file1): list1[line.split()[0]] = 1 for line in open(file2): key = line.split()[0] if key
  • 详详解解Python sys.argv使使用用方方法法 在本文中我们给大家详细讲解了关于Python sys.argv使用方法以及注意事项有此需要的读者们跟着学习下 sys.argv是python用来获取命令行参数的如在CMD下执行python .py data也...
  • <div><p>Right now, we set <code>sys.argv == ['cocotb'], and put the simulator argv in <code>cocotb.argv</code>. <p>Is there a reason we don't just put the "real" argv in ...
  • sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径,所以参数从1开始,以下两个例子说明: 1、使用sys.argv[]的一简单实例: 以下是sample1.py文件: import sys,os print sys.argv os.system(...
  • 本文实例讲述了python中sys.argv参数用法。分享给大家供大家参考。具体分析如下: 在学python的过程中,一直弄不明白sys.argv[]的意思,虽知道是表示命令行参数,但还是有些稀里糊涂的感觉。 今天又好好学习了一把,...
  • sys.argv就是一个从程序外部获取参数的,这个外部指的是我们执行python文件时后面追加的参数,例如:python3 test.py test1 test2 从外部获取的参数可以是单个也可以是多个,获取的是一个列表(list),也就是说sys....
  • sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键。因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素...

    sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键。因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。

    下面我们通过几行简单的代码来试一试

    #方法argv.py

    import sys

    a = sys.argv[0]

    print(a)

    进入控制台命令窗口,进入保存有这个py文件的目录下,输入:python 方法argv.py,结果如图所示:

    得到的结果是方法argv.py,这就是0指代码(即此.py程序)本身的意思。

    然后我们将代码中0改为1 :

    #方法argv.py

    import sys

    a = sys.argv[1]

    print(a)

    保存后,再从控制台窗口运行,这次我们加上一个参数,输入:python 方法argv.py test1,结果如图所示:

    得到的结果就是我们输入的参数test1,看到这里你是不是开始明白了呢。

    我们再次将代码修改,把1改成2:

    #方法argv.py

    import sys

    a = sys.argv[2:]

    print(a)

    保存后,从控制台窗口运行,这次我们传很多个参数,结果如图:

    得到的结果为['TEST2', 'hhh', '123']。

    Sys.argv[ ]其实就是一个列表,里边的项为用户输入的参数,关键就是要明白这参数是从程序外部输入的,而非代码本身的什么地方,要想看到它的效果就应该将程序保存了,从外部来运行程序并给出参数。

    展开全文
  • 下面以sys.argv[0],sys.argv[1],sys.argv[1:]进行具体分析,你也可以做其他尝试。首先打开一个新的文件编辑器窗口,输入下面的代码,将其保存为test.py。import sysprint(sys.argv[0])用命令行找到test.py文件,以...
  • sys.argv是python用来获取命令行参数的,如在CMD下执行python *.py data,也就是使用python执行脚本时,需要添加的参数 按照Python教程中的做法 编写using_sys.py 在cmd中执行脚本 先是只执行python using_sys.py ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,660
精华内容 6,264
热门标签
关键字:

sys.argv