2016-07-29 209 views
0

我有一個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) 
+1

用函數導入腳本? –

+0

你的意思是我可以簡單地執行'import function_script'然後使用它?他們需要在同一個工作目錄嗎?將變量傳遞給它只是簡單的'function_script(filter1,filter2,filter3)? – Jstuff

+0

假設'function_script'在'function_file.py'中,如果這兩個文件位於同一個目錄中,它將從'from function_file import function_script'中輸入 – dashiell

回答

-1

的execfile(文件名[,全局[,當地人])

+0

哎呀,這不是必然的 –

0

假設大功能該文件是在一個目錄中的所有其他:

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 
+0

如果我不知道每次有多少參數傳遞給函數,有沒有辦法將它推廣? – Jstuff

+0

那麼你的功能應該處理,你的問題沒有要求..但我會將它包含在答案中 –

相關問題