2016-03-29 11 views
0

Ich habe in den letzten paar Tagen mit Python gearbeitet und angefangen an einem Projekt zu arbeiten. Derzeit versuchen Sie herauszufinden, wie Sie die gleiche Funktion mit mehreren Variablen ausführen (In diesem Fall Stock-Symbole). Vorzugsweise mit einer Eingabe() getrennt durch ein Komma oder etwas. Ich habe mit diesem letzten Teil einen Haken gefunden. Kann mir jemand zeigen, wohin ich als nächstes gehen soll? (Die gleiche Funktion mit mehreren Variablen gleichzeitig ausgeführt werden.)Python: Ausführen mehrerer Variablen mit derselben Funktion zur gleichen Zeit. Neu in Python

Hier ist mein Code:

#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() 

Mein Ziel ist es, jedes Aktiensymbol zu haben, das eingegeben wird, erstellen eine eigene Datei in dem Ordner für heute. Ich bin ziemlich sicher, dass ich herausfinden kann, wie man das macht, sobald ich mehrere Funktionen bekomme. Danke im Voraus.

Auch lassen Sie mich wissen, wenn Sie irgendwelche wichtigen Vorschläge oder Best Practices haben. Das ist wie an meinem zweiten Tag mit Python. Danke noch einmal.

Antwort

0

sie einfach in die Funktion übergeben:

# 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