Zwei Eingabe Felder die den Zeitraum der WEB_Abfrage steuern.
Code: Alles auswählen
# -*- coding: cp1252 -*-
#----------------------------------------------------------------------
# Frame Programm zum einlesen der Boersenlisten
# wx.StaticText, wx.Button, and a wx.BoxSizer, but it shows the basic
# structure of any wxPython application.
#----------------------------------------------------------------------
import wx
import os
import types
import csv
import urllib
#globale variablen
class MyFrame(wx.Frame):
"""
This is MyFrame. It just shows a few controls on a wxPanel,
and has a simple menu.
"""
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, -1, title,
pos=(250, 150), size=(450, 350))
# Create the menubar
menuBar = wx.MenuBar()
# and a menu
menu = wx.Menu()
# add an item to the menu, using \tKeyName automatically
# creates an accelerator, the third param is some help text
# that will show up in the statusbar
menu.Append(wx.ID_EXIT, "E&xit\tAlt-X", "Exit this simple sample")
# bind the menu event to an event handler
self.Bind(wx.EVT_MENU, self.OnTimeToClose, id=wx.ID_EXIT)
# and put the menu on the menubar
menuBar.Append(menu, "&File")
self.SetMenuBar(menuBar)
self.CreateStatusBar()
# Now create the Panel to put the other controls on.
panel = wx.Panel(self)
# and a few controls
text = wx.StaticText(panel, -1, "Boersen Daten einlesen \n von Yahoo-Finance!")
text.SetFont(wx.Font(14, wx.SWISS, wx.NORMAL, wx.BOLD))
text.SetSize(text.GetBestSize())
btn = wx.Button(panel, -1, "Close")
but_tecdax_einlesen = wx.Button(panel, -1, "TECDax Einlesen")
but_einlesen = wx.Button(panel, -1, "Einlesen von Daten")
# bind the button events to handlers
self.Bind(wx.EVT_BUTTON, self.OnTimeToClose, btn)
self.Bind(wx.EVT_BUTTON, self.OnTecdaxButton, but_tecdax_einlesen)
self.Bind(wx.EVT_BUTTON, self.OnFunButton, but_einlesen)
# Use a sizer to layout the controls, stacked vertically and with
# a 10 pixel border around each
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(text, 0, wx.ALL, 10)
sizer.Add(btn, 0, wx.ALL, 10)
sizer.Add(but_tecdax_einlesen, 0, wx.ALL, 10)
sizer.Add(but_einlesen, 0, wx.ALL, 10)
panel.SetSizer(sizer)
panel.Layout()
def Verzeichnissbaum(self):
if os.path.exists('C:\\boerse'):
print 'Verzeichnisse sind da'
else:
os.mkdir('C:\\boerse')
os.mkdir('C:\\boerse\\tecdax\\')
os.mkdir('C:\\boerse\\mdax\\')
os.mkdir('C:\\boerse\\cdax\\')
os.mkdir('C:\\boerse\\sdax\\')
os.mkdir('C:\\boerse\\dax30\\')
os.mkdir('C:\\boerse\\symbole\\')
print 'Verzeichnisse erstellt'
# Symbollisten erstellen
print 'Symbollisten werden erstellt'
tecdax = ['MOR.DE','IDS.DE','GPC.DE','FNT.DE','ES6.DE','DRW3.DE',
'EPC.DE','CGY.DE','BC8.DE','BBZ.DE','AUS.DE','AIX.DE',
'AFX.DE','KBC.DE','ADV.DE','MTH.DE','NDX1.DE','PFV.DE',
'QCE.DE','QIA.DE','QSC.DE','RSI.DE','SNG.DE','SOW.DE',
'SWV.DE','TA6.DE','UTDI.DE','VTW.DE','WDI.DE']
mdax=['CLS1.DE','ALT.DE','AMB2.DE','AQU.DE','ARL.DE','ARO.DE',
'AWD.DE','BOS3.DE','BEI.DE','DEQ.DE','DOU.DE','EAD.DE',
'FRA.DE','FRE3.DE','G1A.DE','GBF.DE','GFJ.DE','HDD.DE',
'DEZ.DE','HEI.DE','HNR1.DE','IKB.DE','HOT.DE','IVG.DE',
'IWK.DE','KCO.DE','KRN.DE','LEO.DE','LXS.DE','MLP.DE',
'MTX.DE','NDA.DE','PFD4.DE','PRA.DE','PRE.DE','PUM.DE',
'PSM.DE','RHK.DE','RHM.DE','SAZ.DE','SDF.DE','SGL.DE',
'SY1.DE','SZG.DE','SZU.DE','TGM.DE','TNH.DE','VOS.DE',
'WCH.DE','WIN.DE']
cdax=['IUR.DE','PIT.DE','HUL.DE','SIM.DE','MNV6.DE','RIN7.DE',
'TBB.DE','LEC.DE','MAF.DE','VGT.DE','YMOS','YMO.DE','SFP1.DE',
'DKA.DE','VMR.DE','STR.DE','BMO.DE','GARY.DE','COD.DE',
'MOE.DE','AUT.DE','SIN.DE','EIS.DE','SHF.DE','MAU.DE',
'BLAG.DE','BLN.DE','BJU.DE','MPR.DE','OAR.DE','FRO.DE',
'PKB.DE','T1C.DE','UUU.DE','VSC.DE','AAA.DE','ACV.DE',
'AGV.DE','AHH.DE','AAH3.DE','LUM.DE','RBX.DE','NIE.DE',
'AQU.DE','ACW.DE','AWD.DE','AX33.DE','ARL.DE','ABO.DE',
'RSB.DE','HNG.DE','LKI.DE','ADC.DE','ADS.DE','ADL.DE',
'AAH.DE','ADJ.DE','ADV.DE','DVN1.DE','AP8.DE','AGI.DE',
'DOO.DE','ARE.DE','AIX.DE','ALG.DE','AS1.DE','ABX.DE',
'AEI.DE','ALV.DE','ANO.DE','ATF.DE','AL4.DE','ALT.DE',
'TXA.DE','AAD.DE','AMB2.DE','AJA.DE','ANZ.DE','A3E.DE',
'AHZ.DE','AR5.DE','AYD.DE','HHS.DE','ARX.DE','AOF.DE',
'NSU.DE','ABE1.DE','AX3.DE','ACG.DE','BM9A.DE','BYW6.DE',
'BKS3.DE','BIO.DE','BKQ.DE','BMW3.DE','BWB.DE','BBX.DE',
'BBX.DE','BTT.DE','BAD.DE','BAS.DE','BSL.DE','BVH.DE',
'B5A.DE','BAY.DE','SCH.DE','HVM.DE','BYW.DE','USE.DE',
'BC8.DE','BEI.DE','BEZ3.DE','BHH.DE','BFV.DE','MBH3.DE',
'BDT.DE','BZL.DE','BSS.DE','BSK.DE','BIE.DE','BIJ.DE',
'GBF.DE','BNT.DE','BIT.DE','BIB.DE','BIO3.DE','BIO3.DE',
'BMW.DE','BVB.DE','BMM.DE','AFX.DE','C3O.DE','MXC.DE',
'COM.DE','CBK.DE','CAG.DE','CGY.DE','CON.DE','DSJ.DE',
'DYK.DE','DRN.DE','DCX.DE','D9C.DE','DBK.DE','DB1.DE',
'DPW.DE','DPB.DE','DTE.DE']
sdax=['AB1.DE','B5A.DE','AOX.DE','BAD.DE','BHS.DE','BYW6.DE','COM.DE',
'D9C.DE','DAZ.DE','DBA.DE','DSJ.DE','DUE.DE','DWNI.DE','DYK3.DE',
'EEX.DE','ESC.DE','EV4.DE','FIE.DE','EVD.DE','FPE3.DE','GFK.DE',
'GIL.DE','GLJ.DE','GMM.DE','GWI1.DE','GXI.DE','HG1.DE','HXCI.DE',
'INH.DE','IYP.DE','JUN3.DE','KBU.DE','KWS.DE','MDN.DE','MPC.DE',
'MVV1.DE','O2C.DE','P1Z.DE','RAA.DE','SGS.DE','SIX2.DE','SKB.DE',
'SPR.DE','T3C.DE','TEG.DE','TTK.DE','VIA.DE','WAC.DE','WAS.DE',
'ZIL2.DE']
dax30=['ADS.DE','ALV.DE','BAS.DE','BAY.DE','BMW.DE','CBK.DE',
'DAI.DE','DB1.DE','DBK.DE','DPB.DE','DPW.DE','DTE.DE',
'EOA.DE','FME.DE','HEN3.DE','HRX.DE','IFX.DE','LHA.DE',
'LIN.DE','MUV2.DE','MAN.DE','MEO.DE','MRK.DE','RWE.DE',
'SIE.DE','TKA.DE','TUI1.DE','VOW.DE','SAP.DE']
symbollisten = {'tecdax':tecdax, 'mdax':mdax,'cdax':cdax,'sdax':sdax,'dax30':dax30}
for key, value in symbollisten.iteritems():
out_file = open("C:\\boerse\\symbole\\%s.txt" % key, "w")
for item in value:
out_file.write(item +'\n')
out_file.close()
print 'Symbollisten erstellt'
def OnTimeToClose(self, evt):
"""Event handler for the button click."""
print "See ya later!"
self.Close()
def OnTecdaxButton(self, evt):
symbol_liste={}
Monatvon="00"
Tagvon="25"
Jahrvon="2008"
Monatbis="01"
Tagbis="18"
Jahrbis="2008"
print 'Lese Symbolliste'
#überprüfe verzeichnissbaum
self.Verzeichnissbaum()
in_file = open("C:\\boerse\\symbole\\tecdax.txt", "r")
x=0
while True:
in_line = in_file.readline()
if not in_line:
break
in_line = in_line[:-1]
symbol_liste[x] = in_line
x=x+1
in_file.close()
print "eingelesen"
x=0
print 'erstelle csv Dateien'
while x < len(symbol_liste):
url=("http://ichart.yahoo.com/table.csv?s=%s&a=%s&b=%s&c=%s&d=%s&e=%s&f=%s&g=d&ignore=.csv" %(symbol_liste[x],Monatvon,Tagvon,Jahrvon,Monatbis,Tagbis,Jahrbis))
print url
req = urllib.urlopen(url)
f = file("C:\\boerse\\tecdax\\%s.csv"%(symbol_liste[x]), 'w')
f.write(req.read())
f.close()
req.close()
print symbol_liste[x],' erledigt'
x=x+1
print 'Dateien aus Internet erstellt'
def OnFunButton(self, evt):
"""Event handler for the button click."""
print "Having fun yet?"
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, "Boersen-Analyse Tool Sammel Lothar 2008")
self.SetTopWindow(frame)
print "Hier gibt es die Laufzeit Statusmeldungen"
print
print 'Standard gehen die Dateien nach '
print 'C:\\boerse\\'
print 'in die jeweiligen Unterverzeichnisse'
print 'tecdax , mdax , cdax ,sdax ,symbole '
print
print 'dateien werden eingelesen als csv'
frame.Show(True)
return True
app = MyApp(redirect=True)
#Ausgabe()
app.MainLoop()