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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM