Python相关错误,无法找到路径[关闭]

inb24sb2  于 12个月前  发布在  Python
关注(0)|答案(2)|浏览(312)

**已关闭。**此问题需要debugging details。目前不接受回答。

编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答问题。
昨天就关门了。
Improve this question
我正在运行一个代码,开头包含以下代码段-

#Set path(command) to Hphi
if len(sys.argv) == 2:
path_to_HPhi = os.path.abspath(sys.argv[1])
else:
print("Error")
print("Usage: python do_all.py path_to_HPhi.")
print("path_to_HPhi: relative or absolute path to HPhi.")
exit(1)

字符串
当我运行代码时,它会打印包含在打印命令中的错误。
你能帮我整理一下吗?

f3temu5u

f3temu5u1#

从你提供的代码中,我可以想象你忘记了sys.argv[0]是脚本的名称,所以如果你提供2个参数,len(sys.argv)等于3,而不是2。
你应该至少添加以下代码:

print(len(sys.argv))
for i in range(len(sys.argv)):
    print(sys.argv[i])

字符串
这应该能帮你搞清楚到底发生了什么

fkvaft9z

fkvaft9z2#

如果添加另一个依赖项不是禁止的,我建议使用argparse

import argparse

parser = argparse.ArgumentParser(
                    prog='ProgramName',
                    description='What the program does',
                    epilog='Text at the bottom of help')
parser.add_argument('filepath')

arguments = parser.parse_args()

path_to_HPhi = arguments.filepath

字符串
通过这种方式,您可以相对轻松地指定过多的参数,定义默认值,关键字参数等。
此外,如果缺少必需的参数或提供了意外的参数,它会自动创建帮助/错误消息。
当然,仅从你提供的代码片段来看,使用argparse可能有些矫枉过正,但在不知道你如何调用脚本以及是否还需要其他参数的情况下,这很难说。如果你可以添加更多的参数,它肯定会使你的脚本在将来更容易扩展。

相关问题