从另一个脚本调用python脚本并将变量传递给它
我有一个python脚本,它包含一个大型函数,用于过滤列表并将内容导出到excel。我希望能够制作不同的python脚本,我可以为不同的情况指定不同的过滤器,并使用应用过滤器的函数将它们传递给我的python脚本。从另一个脚本调用python脚本并将变量传递给它
例如
#Script called function_script with function to apply filters
def my_funct(filter1, filter2, filter3, etc):
apply filters to list
export results to excel
我都会有不同的过滤器对一些常见的用例和,而不是改变我的过滤器,我宁愿创建调用脚本包含我的功能,并传递每个用例python脚本过滤器。就像是。
#One script where filters for category 1 are defined
filter1 = 'Foo'
filter2 = 'Bar'
filter3 = 'Test'
function_script(filter1, filter2, filter3)
的execfile(文件名[,全局[,当地人])
哎呀,这不是必然的 –
假设大功能该文件是在一个目录中的所有其他:
some folder
|-functions_file.py
|-main.py
所以你的函数文件将包含您的功能,例如:
def add(num1, num2):
return num1+num2
def subtract(num1, num2):
return num1-num2
#here is example function to show you how to pass more values to function
def add_all(numbers):
#if you need individual values
for number in numbers:
print number
return sum(number)
并从您的main.py
你可以这样做:
import functions_file
print(functions_file.add(1,20)) #prints 21 if you're on py2 you don't need() for print
print(functions_file.add_all([1,2,3,4,5,6]))
#you pass parameters in list -> 21 is output
如果我不知道每次有多少参数传递给函数,有没有办法将它推广? – Jstuff
那么你的功能应该处理,你的问题没有要求..但我会将它包含在答案中 –
用函数导入脚本? –
你的意思是我可以简单地执行'import function_script'然后使用它?他们需要在同一个工作目录吗?将变量传递给它只是简单的'function_script(filter1,filter2,filter3)? – Jstuff
假设'function_script'在'function_file.py'中,如果这两个文件位于同一个目录中,它将从'from function_file import function_script'中输入 – dashiell