PythonA股数据查询与可视化(改)

本文介绍了一个使用Python和Tkinter创建的股票查询GUI应用程序,该程序能够通过输入股票代码查询股票实时信息并显示股票走势图。文章提供了完整的代码示例,包括如何获取股票数据、解析数据并显示在界面上的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章中的代码对大佬菜鸟上路_lbz 的文章https://blog.youkuaiyun.com/qq_44198436/article/details/101597418做了一下小小的修改,修改后的代码直接输入股票代码数字即可。

from tkinter import *
import requests
import tkinter
app = Tk()
app.title('股票查询')
app.geometry('400x250')
v_text = StringVar()
v_name = StringVar()
name = Entry(app, textvariable=v_name, bd=5)
url = 'http://hq.sinajs.cn/list='


def go():
    get_name = GetName()
    url_new = url + get_name
    res = requests.get(url_new).text
    list = res.split(',')
    v_text.set(
        '当前查询股票:{}\n今日开盘价:{}\n昨日收盘价:{}\n当前价格:{}\n今日最高价:{}\n今日最低价:{}\n成交的股票数:{}\n成交金额:{}\n日期:{} {}'
        .format(str(list[0][21:]), list[1], list[2], list[3], list[4], list[5],
                list[8], list[9], list[30], list[31]))


def photo():
    import io
    # allows for image formats other than gif
    from PIL import Image, ImageTk
    try:
        # Python2
        import Tkinter as tk
        from urllib2 import urlopen
    except ImportError:
        # Python3
        import tkinter as tk
        from urllib.request import urlopen
    root = tk.Toplevel()
    get_name = GetName()
    url = "http://image.sinajs.cn/newchart/daily/n/{}.gif".format(get_name)
    image_bytes = urlopen(url).read()
    # internal data file
    data_stream = io.BytesIO(image_bytes)
    # open as a PIL image object
    pil_image = Image.open(data_stream)
    # optionally show image info
    # get the size of the image
    w, h = pil_image.size
    # split off image file name
    fname = url.split('/')[-1]
    sf = "{} ({}x{})".format(fname, w, h)
    root.title(sf)
    # convert PIL image object to Tkinter PhotoImage object
    tk_image = ImageTk.PhotoImage(pil_image)
    # put the image on a typical widget
    label = tk.Label(root, image=tk_image, bg='black')
    label.pack(padx=5, pady=5)
    root.mainloop()


def go_1():
    import threading
    t1 = threading.Thread(target=photo)
    t1.start()


def GetName():
    get_name = name.get()  #get_name为股票代码
    temp = int(get_name)
    if temp > 600000:
        form = 'sh'  #sh代表上交所股票,代码以6开头,
    else:
        form = 'sz'  #sz代表深交所股票,代码以0或3开头
    get_name = form + get_name
    print(get_name)
    return get_name


name.pack()
go = Button(app, text='查询', command=go).pack()
photo_1 = Button(app, text='图片', command=go_1).pack()
label_show = Label(app, textvariable=v_text).pack()
app.mainloop()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值