如果__name__=='__main__':采用文件路径怎么办



我已经编写了一个驱动程序代码,从用户获取文件路径,并在我的函数中使用该文件路径。驱动代码如下;

import sys
if __name__ == '__main__':
if len(sys.argv) != 2:
print("Usage: %s input_file" % sys.argv[0])
sys.exit()
file_path = sys.argv[1]
connection, color, numOf_Nodes,links = read_problem(file_path)
print(links)
graph_coloring(connection, color, 0, numOf_Nodes)

但是当我运行这段代码时,我得到以下错误:

Usage: C:ProgramDataAnaconda3libsite-packagesipykernel_launcher.py input_file
An exception has occurred, use %tb to see the full traceback.
SystemExit

它不应该要求用户提供文件路径吗?我是使用驱动程序代码的新手,因此我可能会跳过编写驱动程序代码工作的某些部分。

帮忙吗?

代码期望用户在命令行传递文件路径。你想要这样执行你的代码:

python ipykernel_launcher.py /path/to/input/file

在执行代码时,变量file_path将获得/path/to/input/file的值。

变量sys.argv在第一个位置包含脚本名称,然后是在命令行上传递给脚本的每个参数。这就是为什么2在这里是合适的期望…数组中的第一个值是脚本名称。第二个值是程序的文件路径参数。

最新更新