Python:从命令行参数调用文件时的NameError

时间:2015-09-18 20:05:26

标签: python-3.x command-line nameerror

对于作业,我应该有一行来打开一个在命令行中作为参数传递的文件,我一直在

program=open(programfilename, "r")

我的代码是id。我不确定是什么问题。这是我计划的第一行。 Execute.py是我的代码的名称。

3 个答案:

答案 0 :(得分:0)

您需要将programfilename变量设置为前一行文件的名称/路径。或者,您可以将文件名放在引号中。

答案 1 :(得分:0)

  

这是我程序中的第一行

那是你的问题。您正在使用programfilename而没有先定义它。

尝试类似

的内容
import sys   
programfilename = sys.argv[0]  # argument you passed into your program. 
program=open(programfilename, "r")

答案 2 :(得分:0)

我不确定你到底在想什么。 如果要使用命令行调用文件,代码可以是这样的

import sys
with open(sys.argv[1], 'r') as f:
    print(f.read())

像这样跑

python3 execute.py programfilename

如果您希望程序在控制台上打印,代码可以是这样的

import sys
with open(sys.argv[0], 'r') as f:
    print(f.read())

这将在控制台上打印代码。

像这样跑

python3 execute.py