Formatieren von Text in einer Tabelle in Python

Ich habe Probleme beim Erstellen einer Tabelle, die dynamisch ist, um sie an verschiedene Ergebnisse anzupassen.

Ich habe einen Bildschirmschaber geschrieben, aus dem ich Aktien ziehen kannhttp://finance.yahoo.com und drucken Sie den Firmennamen, das Symbol und den aktuellen Aktienkurs.

Die Ausgabe sieht jedoch so aus:

 Microsoft Corporation MSFT 29.76

 Apple Inc. AAPL 396.77

 SPDR S&P 500 SPY 155.25

 Google Inc. GOOG 787.76

Ich möchte, dass es so aussieht

Microsoft Corporation        MSFT      29.76

Apple Inc.                   AAPL      396.77

SPDR S&P 500                 SPY       155.25

Google Inc.                  GOOG      787.76

Ich habe gestern mit Python angefangen zu arbeiten und benutze 3.3.1

Mein aktueller Code lautet wie folgt:

import re
import urllib.request
import cgi
from bs4 import BeautifulSoup

price = [0,0,0,0]
namesList = ["string1", "string2", "string3", "string4"]
stocksList = ["msft","aapl","spy","goog"]

def HTML():
    i = 0
    while i < len(stocksList):
        htmlPull = urllib.request.urlopen("http://finance.yahoo.com/q?s="+stocksList[i]+"&ql=1")
        htmlPull = htmlPull.read().decode('utf-8')
        regex = '<span id="yfs_l84_'+stocksList[i]+'">(.+?)</span>'
        pattern = re.compile(regex)
        price[i] = re.findall(pattern,htmlPull)
        htmlParse = BeautifulSoup(htmlPull)
        title = htmlParse.title.contents
        namesList[i] = title        
        i+=1

formatPrice(price)
formatStock(namesList)
formatOutput(namesList, stocksList, price)

def formatPrice(price):
    k=0
    while k < len(price):
        cleaner = str(price[k])
        cleaner = cleaner.replace("[","")
        cleaner = cleaner.replace("]","")
        cleaner = cleaner.replace("'","")
        price[k] = float(cleaner)
        k+=1

def formatStock(namesList):
    k = 0
    while k <len(namesList):
        capital = stocksList[k]
        capital = capital.upper()
        cleaner = str(namesList[k])
        cleaner = cleaner.replace("Summary for ", "")
        cleaner = cleaner.replace(":"," ")
        cleaner = cleaner.replace("- Yahoo! Finance'","")
        cleaner = cleaner.replace("['","")
        cleaner = cleaner.replace("]","")
        cleaner = cleaner.replace(";","")
        cleaner = cleaner.replace(capital, "")
        namesList[k] = cleaner;
        k+=1

    def formatOutput(namesList, stocksList, price):
        i = 0
        while i < len(price):
        capital = stocksList[i]
        capital = capital.upper()
        print(namesList[i],capital, price[i])
        print("")
        i+=1
HTML()

Habe versucht, das Format print ({0}, {1}, {2}. (NamesList, capital, price [i])), verschiedene Arten von {: <16} -Variationen usw. zu verwenden. Es scheint nur eine Zeile und ich zu betreffen Ich versuche, es dazu zu bringen, in Spalten oder einer Tabelle oder vielleicht in einer bestimmten Menge Platz zu denken, die der Text und das Leerzeichen ausfüllen sollen. Ich bin mir nicht sicher, was genau die Lösung ist, also frage ich euch alle :)

Wie Sie an meinem Code erkennen können, bin ich ziemlich neu in der Programmierung. Wenn es also eine bessere Möglichkeit gibt, irgendetwas in diesem Code zu tun, würde ich mich über Korrekturen, Ratschläge und Vorschläge freuen.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage