在论坛中的一些帮助下,我制作了一个脚本,可以对文件进行排序并从多个 Excel 文件中读取数据,此外还有一个将这些数据写入脚本的脚本。通过对 exceldocuments 进行排序,输出如下所示:
C:/eclipse/TST-folder\kop_tstdoc.xls
C:/eclipse/TST-folder\tstdoc.xls
之后,我将这些数据读入一个脚本,该脚本会提取我感兴趣的单元格值,并将这些数据写入一个名为 *"val_dict"* 的字典中。这个字典是这样构建的:
val_dict[filename] = [weightvalue, lenghtvalue, speedvalue]
完成的 dict 将包含越来越多的文件和值,这些文件和值已经传递了 50 个 .xls 文件。dict 的输出将如下所示:
{'C:/eclipse/TST-folder\\kop_tstdoc.xls': [10.0, 21.0, 30.0],
'C:/eclipse/TST-folder\\tstdoc.xls': [3.0, 5.0, 5.0]}
例如,我想在函数中使用“权重值”来将数据缩放到合适的大小以进行测试建模。下面是函数*“scale_weight”*,它应该根据“每个文档的权重值和用户定义的“输入权重”计算x1值作为缩放因子。我在从字典中读取权重值时遇到问题,因为我到目前为止,最终使用了文件名、整个列表等,而不是从我的 dict 中提取weightvalue。任何人都可以给我提示,或者可能是如何做到这一点的不同方法?下面的缩放脚本:
def scale_weight(): # Repeat for each value.
for filename in val_dict:
for x1 in range(len(val_dict)):
values = val_dict.get(weightvalue) #want "weightvalue" from dict here
x1 = eval(inputweight) / eval(values)
return x1
for x1 in scale_weight():
print x1
我想要这个脚本是为我的字典中的每个文件名返回一个x1值,其中x1值等于用户定义的输入权重除以每个 Excel 文件的权重值。
更新
val_dict output looks like this:
{'C:/eclipse/TST-folder\\kop_tstdoc.xls': [10.0, 21.0, 30.0],
'C:/eclipse/TST-folder\\tstdoc.xls': [3.0, 5.0, 5.0]}
修改后的脚本:
inputweight = int(raw_input('Insert weight'))
def scale_weight():
for filename in val_dict:
values = val_dict.get(filename)[0]
x1 = float(inputweight) / float(int(values))
return x1