我想将dirs
列表中的文件夹名称分配给vars
列表中的变量。主要问题是var
具有稳定的项目数,但用户可以更改dirs
。
import os, sys
path = "C:\BAR_PREK"
dirs = os.listdir( path )
vars = ['VAR0.Value', 'VAR1.Value', 'VAR1.Value', 'VAR3.Value', 'VAR4.Value', 'VAR5.Value', 'VAR6.Value']
我写的是这样的愚蠢代码:
VAR0.Value = dirs[0]
VAR1.Value = dirs[1]
VAR2.Value = dirs[2]
<...>
但是如果我们得到空的dirs [x]值,则会导致错误。
答案 0 :(得分:0)
不确定我是否理解正确。您可以先获得最短的dirs和vars长度,然后分配值。像这样:
import os
path = "C:\BAR_PREK"
dirs = os.listdir(path)
vars = ['VAR0.Value', 'VAR1.Value', 'VAR1.Value', 'VAR3.Value', 'VAR4.Value','VAR5.Value', 'VAR6.Value']
num = min([len(dirs),len(vars)])
for i in range(num):
vars[i] = dirs[i]
答案 1 :(得分:0)
您可以将exec用于作业
In [116]: vars = ['VAR0.Value', 'VAR1.Value', 'VAR1.Value', 'VAR3.Value', 'VAR4.Value','VAR5.Value', 'VAR6.Value']
In [117]: for idx, var in enumerate(vars):
...: exec("DIR{}='{}'".format(idx, var))
...:
In [118]: DIR0
Out[118]: 'VAR0.Value'
In [119]: DIR1
Out[119]: 'VAR1.Value'