python实用方法和模块【decimal、eval、import_module、获取项目根目录等】
一、巧用eval
data = {"1": {"2": {"3": "测试"}}}
def aaa(*args):
a = "data{}".format(''.join(['["{}"]'.format(i) for i in args]))
return eval(a)
print(aaa("1"))
print(aaa("1", "2"))
print(aaa("1", "2", "3"))
# 运行结果
# {'2': {'3': '测试'}}
# {'3': '测试'}
# 测试
二、四舍五入
from decimal import * # 保留3位小数,四舍五入到整数位,如果是0.0则是四舍五入到小数点第一位 a = '%.3f' % (Decimal("3.523").quantize(Decimal('0'), ROUND_HALF_UP)) print(a, type(a))
三、字符串加载模块
# 1.根据字符串调用函数 import time str = 'time' eval('print')(1) # 等于print(1) print(eval(str).time()) # 2.根据字符串来加载模块import_module from importlib import import_module model_test = import_module(str) print(model_test.time()) # 2.根据字符串来加载模块__import__ model_test = __import__(str) print(model_test.time()) # 通常在动态加载时可以使用到这个函数,比如你希望加载某个文件夹下的所用模块, # 但是其下的模块名称又会经常变化时,就可以使用这个函数动态加载所有模块了
四、获取项目根目录
def root_path(): p = os.getcwd() while True: if os.path.split(p)[1] == '目标路径': break p = os.path.dirname(p) return p
一个只会点点点的测试,有疑问可以在测试群(群号:330405140)问我

浙公网安备 33010602011771号