다양한 결과에 맞게 동적 인 테이블을 만드는 데 문제가 있습니다.Python에서 테이블의 텍스트 서식 지정
저는 화면 스크레이퍼를 써서 http://finance.yahoo.com에서 주식을 끌어오고 회사 이름과 기호를 인쇄하고 현재 주가가되었습니다.
출력은 다음과 같습니다 그러나 :
Microsoft Corporation MSFT 29.76
Apple Inc. AAPL 396.77
SPDR S&P 500 SPY 155.25
Google Inc. GOOG 787.76
나는 그것이 내가 어제 파이썬 wokring 시작 3.3.1
내 전류를 사용하고
Microsoft Corporation MSFT 29.76
Apple Inc. AAPL 396.77
SPDR S&P 500 SPY 155.25
Google Inc. GOOG 787.76
같이 할 코드는 다음과 같습니다 :
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()
인쇄물 {{0}, {1}, {2} .format (namesList, capital, price [i])), 다양한 유형의 {: < 16} 개 변형 등을 시도했습니다. 그리고 필자는 텍스트 나 공백이 채워야하는 열이나 표 또는 어쩌면 일정량의 공간에 대해 생각하게하려고합니다. 정확히 무슨 해결책이 여기에 있는지 잘 모르겠다. 그래서 나는 모두에게 묻고있다. :)
내 코드로 알 수 있듯이, 나는 프로그래밍에 익숙하지 않기 때문에 할 수있는 더 좋은 방법이있다. 이 코드의 내용은 수정, 조언 및 제안에 귀 기울여 드리겠습니다.
이것은 완벽하게 작동, 감사합니다! 내가 만든 유일한 변경 사항은 names_width 및 stock_width에 +2를 추가하여 공간을 조금 더 넓혔습니다. 또한 Python 3.3.1에서 중괄호 주위에 아포스트로피를 추가하여 올바른 구문으로 표시되도록했습니다. –