能否在Python中获取在我的if条件中应用的条件?

能否在Python中获取在我的if条件中应用的条件?,python,Python,我希望在变量中保留应用的条件,例如: l=test.log 如果l.endswith'.csv'或l.endswith'.log'或l.endswith'.xlsx': 打印体变量 .日志 l=test.csv 如果l.endswith'.csv'或l.endswith'.log'或l.endswith'.xlsx': 打印体变量 .csv 没有开关箱,我如何执行该操作?我只想知道执行了哪种情况。这是一种变体: from pathlib import Path def log_action()

我希望在变量中保留应用的条件,例如:

l=test.log 如果l.endswith'.csv'或l.endswith'.log'或l.endswith'.xlsx': 打印体变量 .日志

l=test.csv 如果l.endswith'.csv'或l.endswith'.log'或l.endswith'.xlsx': 打印体变量 .csv

没有开关箱,我如何执行该操作?我只想知道执行了哪种情况。

这是一种变体:

from pathlib import Path

def log_action():
    print("log")

def csv_action():
    print("csv")

suffix_action = {".log": log_action, ".csv": csv_action}

action = suffix_action[Path("file.log").suffix]
action()
通过这种方式,您可以在各个功能中灵活地执行所需操作。

这是一种变体:

from pathlib import Path

def log_action():
    print("log")

def csv_action():
    print("csv")

suffix_action = {".log": log_action, ".csv": csv_action}

action = suffix_action[Path("file.log").suffix]
action()
通过这种方式,您可以在各个功能中灵活地执行所需操作。

如果。。。埃利夫。。。像这样

l=test.csv 如果l.endswith“.csv”: someVariable='.csv' elif l.endswith'.log': someVariable='.log' elif l.endswith'.xlsx': someVariable='.xlsx' 打印体变量 另一个解决方案可能使用split

someVariable='.+l.split'.[-1] 如果“.csv”、“.log”、“.xlsx”中存在某个变量: 打印体变量 如果。。。埃利夫。。。像这样

l=test.csv 如果l.endswith“.csv”: someVariable='.csv' elif l.endswith'.log': someVariable='.log' elif l.endswith'.xlsx': someVariable='.xlsx' 打印体变量 另一个解决方案可能使用split

someVariable='.+l.split'.[-1] 如果“.csv”、“.log”、“.xlsx”中存在某个变量: 打印体变量
如果只处理文件扩展名,则可以使用获取扩展名,并与预定义集进行比较,如下所示:

从pathlib导入路径 已批准的_扩展={.csv',.log',.xlsx'} l=test.log ext=Pathl.suffix 如果ext在批准的扩展中: 打印文本
如果只处理文件扩展名,则可以使用获取扩展名,并与预定义集进行比较,如下所示:

从pathlib导入路径 已批准的_扩展={.csv',.log',.xlsx'} l=test.log ext=Pathl.suffix 如果ext在批准的扩展中: 打印文本
你可以通过@Adam.Er8这样做。但是我认为您想要实现的是找到文件扩展名。您可以使用os.path.splitext。Iıt甚至会从/path/to/file/test.log这样的路径中提取.log

导入操作系统 文件路径=test.log 文件扩展名=os.path.splitextfile\u路径[1] 如果文件扩展名在['.csv'、'.log'、'.xlsx']中: 打印文件扩展名
你可以通过@Adam.Er8这样做。但是我认为您想要实现的是找到文件扩展名。您可以使用os.path.splitext。Iıt甚至会从/path/to/file/test.log这样的路径中提取.log

导入操作系统 文件路径=test.log 文件扩展名=os.path.splitextfile\u路径[1] 如果文件扩展名在['.csv'、'.log'、'.xlsx']中: 打印文件扩展名
我想你可以通过多种方式达到预期的效果,如果。。。埃利夫。。。埃利夫。。。它是否总是文件扩展名?如果是这样,有一个很好的解决方案…它可以是任何字符串。我想在没有elif或开关的情况下,在一行中完成所有这一切。我想,如果。。。埃利夫。。。埃利夫。。。它是否总是文件扩展名?如果是这样,有一个很好的解决方案…它可以是任何字符串。我想在没有elif或开关盒的情况下,在一行中执行所有这一切