艰苦地学习Python示例15
在示例15中,我们将以艰苦的方式学习Python。为什么脚本是argv的参数或变量之一艰苦地学习Python示例15,python,Python,在示例15中,我们将以艰苦的方式学习Python。为什么脚本是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_in
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()
我只是感到困惑,因为文件名是终端唯一需要的东西。引用
sys.argv是
传递给Python脚本的命令行参数列表。argv[0]是脚本名(这取决于操作系统是否为完整路径名)。如果命令是使用解释器的-c命令行选项执行的,则argv[0]被设置为字符串'-c'。如果没有向Python解释器传递脚本名称,则argv[0]是空字符串
为什么脚本是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()
在这里,作者假设argv
是一个长度为2的数组(它始终是一个数组,但在本例中是一个特定长度)
更清楚的例子是:
x, y = [5, 4]
print x # 5
print y # 4
在
argv
的情况下,它将为您提供脚本的名称以及传入的参数(my_scripy.py--arg0 val0
)sys.argv
的第一个参数是脚本名称/路径,它会自动传递
比如说,
$ script.py filename.txt
argv
gives[“script.py”,“filename.txt”]
我也有同样的问题,我发现在这个练习中,最好在同一根文件夹中有一个名为ex15_sample.txt的文本文件,这样,当您输入python ex15.py ex15_sample.txt时,它会将脚本名称传递给脚本,并打开文件名ex15_sample.txt
希望这有帮助,脚本自动成为argv参数。这是正确的,因为键入python3.6或python(取决于您所使用的系统)之后的所有内容都被计算为argv。它存储在如下列表中:
argv = [ex15.py, ex15_sample.txt]
我相信(不要引用我的话)脚本是您脚本文件的名称。如果运行python myscript.py myfile
,script
应保持myscript.py
,并且filename
应保持myfile
第一个argv条目是脚本名称。这与C的做法是一致的。argv总是在索引0中保存正在运行的脚本名称,因此script,filename=[“scriptname.py”,“yourfile.txt”]