以艰难的方式学习Python示例15

时间:2016-01-08 05:42:12

标签: python

在Learn Python the Hard Way中的示例15中。为什么脚本是argv的参数或变量之一?

    from sys import argv
    script, filename = argv

    txt = open(filename)

    print "Here's your file %r:" % filename
    print txt.read()

    print "Type the filename again:"
    file_again = raw_input("> ")

    txt_again = open(file_again)

    print txt_again.read()

我很困惑,因为file_name是终端唯一要求的东西。

5 个答案:

答案 0 :(得分:1)

引自python docs

sys.argv是

  

传递给Python脚本的命令行参数列表。 argv [0]是脚本名称(无论这是否是完整路径名,它依赖于操作系统)。如果使用解释器的-c命令行选项执行命令,则将argv [0]设置为字符串'-c'。如果没有脚本名称传递给Python解释器,则argv [0]为空字符串。

答案 1 :(得分:0)

  

为什么脚本是argv的参数或变量之一?

这里作者假设argv是一个长度为2的数组(它总是一个数组,但在这种情况下是一个特定的长度)。

一个更清晰的例子:

x, y = [5, 4]
print x  # 5
print y  # 4

argv的情况下,它将为您提供脚本的名称以及您传入的参数(my_scripy.py --arg0 val0

答案 2 :(得分:0)

sys.argv的第一个参数是脚本名称/路径,它会自动传递。

例如,

 $ script.py filename.txt

argv提供["script.py", "filename.txt"]

答案 3 :(得分:0)

我遇到了同样的问题,我发现在此练习中,最好在同一根文件夹中有一个名为ex15_sample.txt的文本文件,这样当您输入python ex15.py ex15_sample.txt时,它将脚本名传递给脚本,然后打开文件名 ex15_sample.txt
希望对您有帮助

答案 4 :(得分:0)

脚本自动是argv参数。这是正确的,因为键入python3.6或python(取决于您所使用的系统)后的所有内容均计为argv。它将存储在这样的列表中:

argv = [ex15.py, ex15_sample.txt]