Python 2.7 的奇特用法
字符串
-
如何生成诸如 "0001.jpg","0002.jpg"等有规则的文件名?
# 文件名后缀 ext = "jpg" # 文件名数字的位数 nz = 4 # 文件名的模板 imgFormat = "{0}{1}{2}{3}".format("{0:0", nz, "d}.", ext) # 得到的结果为 '{0:04d}.jpg',这是说明生成的文件名的数字至少有4位,不足在左边由0补齐 # 生成数字对应的文件名 # 对于第 n = 4 个文件 n = 4 imgName = imgFormat.format(n) # 得到的结果为 '0004.jpg'
-
如何得到某 python 函数名的字符串表示,反之如何根据字符串调用对应的函数?
- 这里主要参考一个关于 matlab 与 python 函数对应的答案
"""求得函数名""" # 先定义一个函数 def func1(): print "func1" pass # 获取 func1 函数的函数名 'func1' func1_str = func1.__name__ """根据函数名来调用函数 方法1""" # 再定义一个函数 def func2(test_str): print "calling from str using eval" print "func2's param is: {0}".format(str(test_str)) pass # 采用 eval 函数进行调用 test_str = 'hello_2333' eval('func2({0})'.format(test_str)) """根据函数名来调用函数 方法2""" # 假设函数 func3 在模块 module_A 中被定义 test_str = 'hello_module_A_2333' def func3(test_str): print "calling from str using module_A" print "func3's param is: {0}".format(str(test_str)) # 采用调用模块属性的方式进行调用 import module_A module_A.getattr('func3')(test_str)
函数调用
-
给定算法名列表["ASLA", "DTH", "FFT"],如何调用诸如 run_ASLA, run_DTH, run_FFT 等函数?
- 这里有一个隐含假设,就是三种函数的参数列表应该一致
import sys # 算法名列表 algoNameList = ["ASLA","DTH", "FFT"] # 函数名模板 funcNameFormat = "run_{0}(params)" # 依次调用 for algoName in algoNameList: try: result = eval(funcName.format(algoName)) except: print "Failed to execute {0}: {1}".format(algoName, sys.exc_info()) pass
网友评论