2016-03-29 51 views
0

過去幾天我一直在使用python,並開始處理一個項目。目前試圖找出如何使用多個變量執行相同的功能(在這種情況下,股票代碼)。最好用一個用逗號分隔的input()。儘管如此,我還是碰到了這個最後一部分。任何人都可以指出我接下來要去的方向嗎? (運行在同一時間多個變量相同的功能。)Python:同時使用相同的函數運行多個變量。 Python新手

這裏是我的代碼:

#Google + Yahoo Finance Stock Lookup 
from googlefinance import getQuotes 
from yahoo_finance import Share 
import googlefinance 
import datetime, time 
import os 
from datetime import datetime 


tDate = datetime.now().strftime('%Y-%m-%d') 
print (tDate) 
tDateConv = str(tDate) 

try: 
    os.chdir('/Users/Jakes_Macbook/Desktop/Python/Stocks') 
except Exception: 
    print('Default Path does not exsist, make sure your directory is right.') 
    pass 

run = True 
while run == True: 
    print('You are currently storing the file in ') 
    print(os.getcwd()) 
    print('type "yes" to continue') 
confirm = input() 
if confirm == 'yes': 
    print ('ok\n') 
    try: 
     os.makedirs(tDateConv) 
    except Exception: 
     pass 
    os.chdir(tDateConv) 
    print('File will be saved to:') 
    print(os.getcwd()) 
    break 
else: 
    print('Where do you want to store the file?') 
    changeDir = input() 
    os.chdir(changeDir) 


print('What Stock or Stocks would you like to look up?') 
stockSymbol = input() 

def runStocks(): 

    print (" ") 
    print ("Stock Symbol: " + stockSymbol) 
    stockSymbolYhoo = Share(stockSymbol) 

    stockFile = open(str(stockSymbol)+'.txt', 'a') 

    dicStored = googlefinance.getQuotes(stockSymbol)[0] 
    numStoredPrice = float(dicStored['LastTradePrice']) 
    print('Stock Open: ' + stockSymbolYhoo.get_open()) 
    print ("Stored Price: " + str(numStoredPrice)) 
    stockFile.write(str("\n" + "Stock Symbol: " + stockSymbol + "\n")) 
    stockFile.write(str("\n" + "Open Price: " + stockSymbolYhoo.get_open() + "\n")) 
    stockFile.write(str("Stored Price: " + str(numStoredPrice)+'\n')) 


    runs = 0 
while runs < 5: 
    stor = googlefinance.getQuotes(stockSymbol)[0] 
    price = stor['LastTradePrice'] 
    print(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + " | " + price) 
    stockFile.write(str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')) + " | Price " + price + ' \n') 

    numPrice = float(price) 

    if numPrice < numStoredPrice*float(.995): 
     print ("buy") 

    time.sleep(5) 
    runs = runs + 1 

stockFile.close() 

runStocks() 

我的目標是讓每個股票代碼,即輸入,文件夾中創建自己的文件今天。我非常肯定,一旦我得到多個功能,我可以弄清楚如何做到這一點。提前致謝。

另外,讓我知道你是否有任何重要的建議或最佳做法。這就像我第二天使用python一樣。再次感謝。

回答

0

只是將它們傳遞給函數:

# Note the definition was updated to be able to pass in a stockSymbol 
def runStocks(stockSymbol): 

    print (" ") 
    print ("Stock Symbol: " + stockSymbol) 
    stockSymbolYhoo = Share(stockSymbol) 

    stockFile = open(str(stockSymbol)+'.txt', 'a') 

    dicStored = googlefinance.getQuotes(stockSymbol)[0] 
    numStoredPrice = float(dicStored['LastTradePrice']) 
    print('Stock Open: ' + stockSymbolYhoo.get_open()) 
    print ("Stored Price: " + str(numStoredPrice)) 
    stockFile.write(str("\n" + "Stock Symbol: " + stockSymbol + "\n")) 
    stockFile.write(str("\n" + "Open Price: " + stockSymbolYhoo.get_open() + "\n")) 
    stockFile.write(str("Stored Price: " + str(numStoredPrice)+'\n')) 

stockSymbols = input("Enter stock symbols separated by commas").split(",") 

for stockSymbol in stockSymbols: 
    runStocks(stockSymbol) # Call your function in a loop