python: 运行第一个条件变为假后的第二个条件
python: run the second condition after the first one becomes false
我有一个脚本,其中给出了 if-else 条件,if 接受用户输入并处理如果某个目录为空并填充该目录,else 运行s 如果该目录已经满了。
if not any(fname.endswith('.csv') for fname in os.listdir(certain_dir)):
def process_user_input:
....code....
return something
else:
def do_process_on_the_full_directory:
....code....
return something_else
所以,如果目录为空,第一个条件变为 True 并且第一个过程发生,然后我必须再次 运行 脚本以使目录上的 else 条件 运行现在已经满了。
我的问题是是否有更好的方法来做到这一点,所以我不必 运行 脚本两次来获得我想要的东西,例如,如果有添加顺序的方法(首先,完成 第一个条件,第二个目录填充后运行第二个条件)。
我们可以在这里利用 decorators1 来强制执行不变量。
def fill_if_empty(func):
def wrapper(*args, **kwargs):
if YOUR_CONDITION_TO_CHECK_FOR_EMPTY_DIR:
"""
fill empty directory here.
"""
process_user_input()
func(*args, **kwargs)
return wrapper
@fill_if_empty
def do_process_on_the_full_directory():
"""
Run some process on directory
"""
pass
do_process_on_full_directory()
1. 查看此 post 以了解有关装饰器的更多信息:How to make function decorators and chain them together?
我有一个脚本,其中给出了 if-else 条件,if 接受用户输入并处理如果某个目录为空并填充该目录,else 运行s 如果该目录已经满了。
if not any(fname.endswith('.csv') for fname in os.listdir(certain_dir)):
def process_user_input:
....code....
return something
else:
def do_process_on_the_full_directory:
....code....
return something_else
所以,如果目录为空,第一个条件变为 True 并且第一个过程发生,然后我必须再次 运行 脚本以使目录上的 else 条件 运行现在已经满了。 我的问题是是否有更好的方法来做到这一点,所以我不必 运行 脚本两次来获得我想要的东西,例如,如果有添加顺序的方法(首先,完成 第一个条件,第二个目录填充后运行第二个条件)。
我们可以在这里利用 decorators1 来强制执行不变量。
def fill_if_empty(func):
def wrapper(*args, **kwargs):
if YOUR_CONDITION_TO_CHECK_FOR_EMPTY_DIR:
"""
fill empty directory here.
"""
process_user_input()
func(*args, **kwargs)
return wrapper
@fill_if_empty
def do_process_on_the_full_directory():
"""
Run some process on directory
"""
pass
do_process_on_full_directory()
1. 查看此 post 以了解有关装饰器的更多信息:How to make function decorators and chain them together?