调用函数时如何添加参数?

时间:2019-04-16 18:28:12

标签: python function

我正在修改一个脚本,该脚本当前将其他脚本称为子​​进程。而不是这样做,我在主脚本内部创建函数来执行以前由子流程执行的任务。

其中一个子过程要求像在命令行中那样将变量传递给它。

以下是调用子流程的代码:

 subprocess.call("python cleaner.py < ./results/Temp.csv 
 >./results/result.csv", shell=True)

 os.remove("./results/Temp.csv")

这就是我想要做的:

 def cleaner(): 
      #working code that cleans certain characters out of selected 
      #.csv files.

 function("./results/Temp.csv > ./results/result.csv", shell=True)
 os.remove("./resluts/Temp.csv")

理想情况下,我想使用子流程中的现有代码,但是如果可以解决问题,我愿意进行更改。这是该代码:

 from __future__ import print_function
 from sys import stdin

 print(next(stdin) , end='')

 for line in stdin:

     toks = [tok.replace("\'","" 
 ).replace("text:u","").replace("number:", "") for tok in 
 line.split()]

     print(' '.join(toks))

该脚本应清除指定的临时文件,将清除的版本复制到结果文件,然后删除该临时文件。当前,它作为子进程运行,但是当我尝试将其作为函数运行时却无法运行。我错误地传递了变量,并引发了此错误:

 'TypeError: cleaner() takes no arguments (1 given)'

1 个答案:

答案 0 :(得分:0)

您需要将参数定义为函数的一部分。

def cleaner(argument1): 
      #working code that cleans certain characters out of selected 
      #.csv files.

了解更多here