Python基础-将变量的值作为变量名

使用场景:linux/unix磁盘文件系统实时使用情况动态收集:

每一台机器挂载的文件系统名字有可能都不相同,就算同一台机器不同时间段挂载的文件系统也会不同。我们需要动态收集文件系统名,将变量的值作为变量,定义为文件系统的名。

语法基础:

>>> for i in range(5):

...     exec('var{} = {}'.format(i, i))

>>> print(var0, var1, var2, var3 ,var4)

0 1 2 3 4

>>> names = locals()

>>> for i in range(5):

...     names['n' + str(i) ] = i

>>> print(n0, n1, n2, n3, n4)

0 1 2 3 4

使用案例:

          #动态初始化所有文件系统的数组
          for fs_name in fs:
              fs_name_ = 'fs{}'.format(fs_name[0].replace('/','____'))
              if fs_name_ not in fs_names:
                  fs_names.append(fs_name_)
                  #/: fs_ = [], /test: fs_test =[]
                  exec('{}=[]'.format(fs_name_),globals())
                  str_time =  strftime( "%Y-%m-%d %H:%M:%S" ,localtime(time_to_sec))
                  globals()[fs_name_].append({"name": str_time, "value": [str_time, int(fs_name[1])]})
              else:
                  str_time =  strftime( "%Y-%m-%d %H:%M:%S" ,localtime(time_to_sec))
                  globals()[fs_name_].append({"name": str_time, "value": [str_time, int(fs_name[1])]})
 

你可能感兴趣的:(python,python,运维)