【问题标题】:How to use a variable as a parameter of a module?如何使用变量作为模块的参数?
【发布时间】:2021-02-11 02:34:44
【问题描述】:

注意:我对 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 个文件,而不是多次编写此文件,我想使用循环来为我执行此操作。

非常感谢您的帮助!

-- 我希望现在更好

【问题讨论】:

  • 记得使用正确的代码格式。

标签: python loops variables module package


【解决方案1】:

我不确定您将变量用作模块的参数是什么意思,但我假设scaleinputmo.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)

【讨论】:

  • 是的,scale 和 input 是 mo.function 的参数
  • 对不起,我没有足够的词汇来描述这个..
  • 谢谢,我会试试这个。我尝试使用元组创建一个循环,但不知道如何添加文件..
  • 我忘了提到函数中的输出..对不起
  • 太好了,谢谢。是的,我已经使用了 os.listdir 函数。 Zip 真的很有帮助!
【解决方案2】:

您能否更好地解释您的问题?

【讨论】:

  • 完成,希望更好!
  • 是的更好,我会帮助你,但有人已经描述了正确的答案
猜你喜欢
  • 2021-04-04
  • 2019-05-24
  • 1970-01-01
  • 1970-01-01
  • 2019-11-16
  • 1970-01-01
  • 1970-01-01
  • 2015-09-28
  • 2018-10-28
相关资源
最近更新 更多