小编sno*_*ind的帖子

期望参数时的错误处理

第一次发帖,也是第一次尝试编码超过 99 瓶的东西......

我正在处理接受来自 cli 的参数(例如文本文件)的代码。预期用途是:

$:myfile.py input.txt

我已经让那部分顺利进行,但是如果没有提供参数,cli 会返回一个错误,我想提供一些错误响应,例如帮助列表或只是一个简单的“不 - 给我一个文件”

现在这里是前几行:

import sys
with open(sys.argv[1], 'r') as f:
    ifile = f.read()
    if len(sys.argv) == 1:
        empty = "Please give me something to do!"
        print empty
Run Code Online (Sandbox Code Playgroud)

如果我提供预期的参数,一切都很好,但如果没有提供参数,我会得到:

Traceback (most recent call last):
  File "myfile.py", line 3, in <module>
    with open(sys.argv[1], 'r') as f:
IndexError: list index out of range
Run Code Online (Sandbox Code Playgroud)

假设我只想在不满足条件的情况下打印变量“Empty”……我该怎么做才能解决这个问题。

编辑:在使用 argparse 尝试以下建议之一后,我得到了更好的结果,但我注意到 argparse 抛出了一个我不期望的字符。现在的代码是:

   def main(filename):
    # do something with filename
    print('your filename is %s' % filename)


if …
Run Code Online (Sandbox Code Playgroud)

python if-statement

5
推荐指数
1
解决办法
259
查看次数

标签 统计

if-statement ×1

python ×1