我正在使用
if __name__ == "__main__":
运行我定义的函数。
然而,作为一种错误捕获措施,我正在尝试实现一种方法来确保文件路径已正确输入到运行我的脚本的 .bat 文件中,文件名作为参数传入。
我正在做的是定义一个函数来定义某些参数是否“有效”,比如
.endswith("\\")
或
.endswith(".txt")
但是因为它们在 if
block 中(if __name__
== "main"`)我正在努力弄清楚如何在那里停止脚本。
我基本上想将我的验证函数应用于所有参数,如果有返回 False
则停止 __main__
函数并以这种方式显示错误消息:
print len(invalid_args), " arguments are invalid, please check input"
然而,在这里使用 break
在 pycharm 中显示为 "Break is outside of loop"
。
如果验证返回 False
并且它全部包含在 if __name__ == "__main__"
block 中,我如何才能停止其余脚本的运行?
这是我的代码的表示,但没有不必要的细节:
def clean():
do_something()
def merge():
do_something_else()
def valid()
if valid:
return True
if not valid:
return False
if __name__ == "__main__":
if not valid():
"Stop script here" # This is the part I don't know how to do
if valid():
try:
clear()
except Exception a e:
print e + "Something Went Wrong"
try:
merge()
except Exception as e:
print e + "Something Went Wrong"
最佳答案
break
用于跳出循环(正如 PyCharm 告诉您的那样)。
相反,您可以使用以下代码来运行您的测试,如果为真,则不允许继续进行其余内容。
# Your code ...
def some_function():
# Something function that runs your tests
# If your tests fail then return True, otherwise return False
if __name__ == '__main__':
if some_function():
print("Sorry but your .bat file must be broken!")
else:
# Run the rest of your code happily.
你甚至可以 raise an Exception而不仅仅是打印一条消息。
关于python - 当不满足条件时中断 if __name__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25974221/