如何从文件名提取对应变量值?现有Python代码输出不符预期
问题分析与解决方案
你现在的代码只是从文件名里提取了变量的名字字符串(比如"happy"),但没有根据这个字符串去获取对应变量的实际值。要实现预期输出,有两种常用方式:
方式一:利用全局变量字典快速获取值
直接通过globals()函数可以访问全局作用域的变量字典,用提取到的名字字符串作为键就能拿到对应的值。修改后的代码如下:
happy = "LOL" angry = "GRRRR" surprised= "YUPPIE" file_names=["happy.wav","angry.wav","surprised.wav"] for i in file_names: name = i.split('.') name_=name[0] print(f'"{globals()[name_]}"') # 用globals()获取变量值,套引号输出
方式二:用字典存储键值对(更推荐)
单独定义分散的变量不够灵活,把情绪和对应值存在字典里是更规范的做法,后续维护和扩展也更方便:
emotions = { "happy": "LOL", "angry": "GRRRR", "surprised": "YUPPIE" } file_names=["happy.wav","angry.wav","surprised.wav"] for i in file_names: name_ = i.split('.')[0] print(f'"{emotions[name_]}"')
两种方式都能输出你想要的结果:
"LOL" "GRRRR" "YUPPIE"
内容的提问来源于stack exchange,提问作者M_Ozb
相关产品推荐
相关产品推荐

