Python - Problem att läsa in lista
Hej!
jag har fastnat på ett säkert väldigt lätt problem men skulle uppskatta eran hjälp ändå.
Jag ska skapa en lista från en textfil som ser ut som följande
Format: datum, börskurs
Ericsson
02-08-01 7.15
02-08-02 6.72
02-08-05 5.56
Electrolux
02-08-01 167.50
02-08-02 165.50
02-08-05 154.00
AstraZeneca
02-08-01 339.50
02-08-02 360.50
02-08-05 353.00
Den första raden vill jag inte läsa in och sedan vill jag ha datum för ericsson som ett element och kursen som ett annat element osv för det andra aktierna.
Hur går jag tillväga med detta?
Tack på förhand
Har du tänkt något själv? Hur ser ditt försök ut?
Har du tänkt något själv? Hur ser ditt försök ut?
Jag har skrivit denna kod men den är hårdkodad och skriver endast ut
---Teknisk analys för Ericsson
02-08-01 7.15
02-08-02 6.72
vilket inte är allt som filen innehåller under aktien ericsson
Koden (rätt lång):
class teknisk(object):
def __init__(self):
self.foretag = None
self.datum = None
self.kurs = None
def __str__(self):
s = "---Teknisk analys för " + self.foretag
s += self.datum
s += self.kurs
return s
#Funktion som läser in textfilen Kurser och tar bort första raden
def inlasFunktion2(textfil):
with open(textfil) as t:
lista = t.readlines()[1:]
#Skapar en lista med rätt element för den tekniska analysen
Kurslista = []
Alista = lista[0:68]
Blista = lista[68:135]
Clista = lista[136:]
Kurslista.append(Alista)
Kurslista.append(Blista)
Kurslista.append(Clista)
return(Kurslista)
#Här skapar vi själva listan för den fundamentala analysen
def skapaTekniskLista(Kurslista):
TekniskLista = []
for elements in Kurslista:
aktie = teknisk()
aktie.foretag = elements[0]
aktie.datum = elements[1]
aktie.kurs = elements[2]
TekniskLista.append(aktie)
return TekniskLista
#Huvudprogrammet
def main():
Kurslista = inlasFunktion2("kurser.txt")
TekniskLista = skapaTekniskLista(Kurslista)
print(TekniskLista[0])
main()
Jag är inte helt hundra på exakt hur du vill ha det, men här kommer ett försök funktion som läser in datan från filen och lägger den smidigt i en dictionary, med nyckeln satt till företaget och sedan en lista av tuples med alla datum. Funktionen för att skriva ut skriver egentligen bara ut den lagrade listan precis som den lästes in.
Informationen sparas enligt följande struktur:
{'Ericsson' : [(02-08-01, 7.15),
(02-08-02, 6.72),
(02-08-05, 5.56)],
'Electrolux' : ...
Koden (hoppas den är kommenterad ordentligt, annars är det bara fråga):
from datetime import datetime
def parse_file(file):
with open(file) as f:
content = f.readlines()
current_company = None
stock_data = {}
for line in content:
# strip() - Tar bort radbrytningstecken.
# split() - Delar upp strängen vid mellanslag
formatted_line = line.strip().split(' ')
# Försök parsea koden som ett datum, om det går är det ett datum, annars namnet på ett företag.
try:
# Om det går att parsea som datum, spara en tupel i dictionaryn för företaget: (datum, pris)
datetime.strptime(formatted_line[0], '%y-%m-%d')
stock_data[current_company].append((formatted_line[0], formatted_line[1]))
except ValueError:
# Här kommer du hamna när det inte går att parsea den första biten av strängen som ett datum,
# sätt då aktuellt företag till den inlästa raden.
current_company = ' '.join(formatted_line)
stock_data[current_company] = []
return stock_data
def print_data(stock_data):
for company in stock_data:
print("Teknisk analys för {}".format(company))
for date_price in stock_data[company]:
print("{}, {}".format(*date_price))
def main():
stock_data = parse_file('kurser.txt')
print_data(stock_data)
if __name__ == "__main__":
main()
- SweRunners - Tråden för oss löptokiga376
- Ghost of Tsushima kan använda DLSS och FSR 3 samtidigt8
- Diablo IV – den stora tråden3711
- Vän flyttat till hus 2 våningar - fråga kring hur man ska sätta upp nätverk för bästa sätt3
- Krönika: Jag borde börjat bygga datorer tidigare13
- Helgsnack: Varför valde du ditt grafikkort?119
- Formel 1-tråden8981
- Ny som foldare eller nyss återupptagit folding? Säg hej!250
- Ny dator innebär att jag behöver sätta nya OBS inställningar för Twitch har ni förslag?13
- Semestra i Normandie. Boende?4
- Säljes XFX MERC 310 AMD Radeon RX 7900 XTX Black
- Skänkes Lian Li PC-C50 HTPC-chassi
- Säljes Razer Core X eGPU
- Säljes MSI Mobo+CPU+RAM och GTX 1070
- Köpes Söker gaminglaptop
- Köpes LGA1151
- Säljes Varierat utbud.
- Säljes Herman Miller Embody - drygt 1 år gammal
- Säljes NZXT Kraken Z53 240mm
- Säljes Acer 27 Predator X27 4K 144Hz HDR G-Sync
- Ghost of Tsushima kan använda DLSS och FSR 3 samtidigt8
- Internets första sökmotor återuppstår9
- Tre år gammal processor sätter hastighetsrekord7
- Asus lovar bot och bättring efter kritikstormen40
- Krönika: Jag borde börjat bygga datorer tidigare13
- Slack tränar AI på användarnas privata meddelanden28
- Helgsnack: Varför valde du ditt grafikkort?119
- Displayport 2.1 har ett kabelproblem45
- 27 år senare – Winamp får öppen källkod43
- Grafikprestanda i Ghost of Tsushima – en välpolerad PC-version22
Externa nyheter
Spelnyheter från FZ
- Arkane Austin säger hejdå med Redfalls sista uppdatering idag
- Eric Barone känner ingen stress att släppa Haunted Cocolatier idag
- En dokumentär om Sierra och äventyrsspelens guldålder är på gång idag
- PC Game Show firar 10 år och bjuder på kalas med över 70 avtäckningar igår
- The Witcher - Se första bilderna på Liam Hemsworth som Geralt igår