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

2024-05-14 18:04:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在修改一个脚本,该脚本当前将其他脚本作为子进程调用。我没有这样做,而是在主脚本中创建函数来执行以前由子进程执行的任务

其中一个子流程要求将变量传递给它,就像从命令行传递一样

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

 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)'

Tags: csv函数代码脚本true进程stdin流程
1条回答
网友
1楼 · 发布于 2024-05-14 18:04:45

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

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

阅读更多here

相关问题 更多 >

    热门问题