【问题标题】:Python: NameError from calling a file from the commandline argumentsPython:从命令行参数调用文件的 NameError
【发布时间】:2015-09-18 20:05:25
【问题描述】:

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

Traceback (most recent call last):
  File "execute.py", line 1, in <module>
    program=open(programfilename, "r")
NameError: name 'programfilename' is not defined

到目前为止,我的代码是program=open(programfilename, "r")。我不知道出了什么问题。这是我程序的第一行。 Execute.py 是我的代码的名称。

【问题讨论】:

  • 应该从哪里获取programfilename

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    这是我程序的第一行

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

    试试类似的东西

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

    【讨论】:

    • 哦,有道理。非常感谢。
    【解决方案3】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 2016-01-18
      • 2017-01-08
      • 2015-08-20
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      • 2018-11-08
      • 2016-09-17
      相关资源
      最近更新 更多