第一次发帖,也是第一次尝试编码超过 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)