首页 > 解决方案 > 如何使用变量作为模块的参数?

问题描述

注意:我对 python 和一般编程完全陌生。
我本质上是使用模块和包进行分析。是否可以将变量作为模块的参数?

假设我有 3 个文件:

a.csv 
b.csv 
c.csv

我为每个文件都有一个缩放数字,我保存在一个名为scale[1,2,3,] 的元组中。

我想使用一个将文件及其缩放数作为参数的模块。它看起来像这样

import module as mo
mo.function -scale 1 -input a.csv > output.csv

我没有写很多次,而是有 96 个文件,我想使用一个循环来为我做这件事。

非常感谢您的帮助!

——我希望现在更好

标签: pythonloopsvariablesmodulepackage

解决方案


我不确定您将变量用作模块的参数是什么意思,但我假设scaleandinputmo.function.

在这种情况下我会做的是遍历文件和相关的缩放数字

import module as mo

my_files = ['file1','file2','file3']
scaling_numbers = [5, 6, 7]

for file, s in zip(my_files, scaling_numbers):
    mo.function(inp=file, scale=s)

编辑:

如果您有 96 个文件,那么使用该模块可能会对您有用os

import module as mo
import os

directory = 'path/to/folder/with/your/files/'

my_files = [directory + file for file in os.listdir(directory)]
scaling_numbers = [5, 6, 7]

for file, s in zip(my_files, scaling_numbers):
    mo.function(inp=file, scale=s)

如果您还有要保存数据的列表输出文件,只需将其包含在 zip 中:

for file_in, file_out, s in zip(input_files, output_files, scaling_numbers):
    mo.function(inp=file_in, out=file_out, scale=s)

推荐阅读