2016-03-08 216 views
-1

我查找過類似的問題,但它們不起作用,因爲我的代碼稍有不同。Python從函數調用循環變量

我有一個變量,它是在一個while循環中分配一個文件名,我想在不同的函數中使用這個文件名。

問題是當我從另一個函數調用變量時;它重複"Enter a file name"

def save(): 
     file_name=loaddata() 
     shutil.copyfile(file_name "CHECKED_v1.txt") 
     print ("Saved Succesfully") 

所以我想使用的文件名"Enter the name of the file to open"savedata功能,沒有它不斷循環

+0

每次調用'loaddata()',都會執行'input'函數,這裏並沒有什麼奇怪的地方 – simpletron

+0

你應該使用一個布爾標誌,你只能在某個條件下進入循環。 'use_last_filename = True' – RafaelC

回答

2

你想通過文件名作爲參數傳遞給你的函數的能力。

你可以這樣做:

def savedata(file_name=None): 
    if not file_name: 
     file_name = loaddata() 
    shutil.copyfile(file_name "CHECKED_v1.txt") 
    print ("Saved Succesfully") 

然後你就可以調用savedata(),這將要求您手動輸入文件名,或者您可以撥打savedata('/path/filename.txt'),你將不會被提示輸入文件名稱。

+0

它進入'file_name = loaddata()'階段,但它再次調用加載數據,並且它返回到它要求在循環中打開文件的步驟。 – Pyom

+0

您需要使用該函數的參數調用savedata。 – DevShark