Python socket编程之五:更新分时图

Posted 佩雷尔曼的信徒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python socket编程之五:更新分时图相关的知识,希望对你有一定的参考价值。

f1.py

# -*- coding: utf-8 -*-
import socket
import struct
import sqlalchemy
import pandas
########################################################################
class Socket:
    #----------------------------------------------------------------------
    def __init__(self, Host = \'192.168.1.3\', Port = 12345):
        self.Host = Host
        self.Port = Port
    #----------------------------------------------------------------------
    def Run_server(self):
        Socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        Socket.bind((self.Host, self.Port))
        Socket.listen(5)
        Engine = sqlalchemy.create_engine(\'mssql+pyodbc://sa:123456@XiTongDSN\')
        \'\'\'修改1\'\'\'
        Dataframe = pandas.read_sql(\'sh\', Engine)
        Index = list(Dataframe[\'date\'].index)
        Close = Dataframe[\'close\']
        Volume = Dataframe[\'volume\']
        i = 0
        while True:            
            Connection, Address = Socket.accept()
            if Connection.recv(1024) == b\'Link\' and i < len(Close):               
                \'\'\'修改2\'\'\'                
                Connection.send(struct.pack(\'iff\', Index[i], Close[i], Volume[i]))
                i += 1
            else:
                Connection.close()
                Socket.close()
    #----------------------------------------------------------------------
    def Run_client(self, Message = b\'Link\'):
        Socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        Socket.connect((self.Host, self.Port))
        Socket.send(Message)
        \'\'\'修改3\'\'\'
        Index, Close, Volume = struct.unpack(\'iff\', Socket.recv(1024)[:12])
        Socket.close()
        return Index, Close, Volume

f2.py

# -*- coding: utf-8 -*-
import sys
sys.path.append(\'C:\\WinPython-32bit-3.5.1.3\\myWorkSpace1\')
import f1
F1 = f1.Socket()
F1.Run_server()

f3.py

# -*- coding: utf-8 -*-
import f1
F1 = f1.Socket()
import matplotlib.pylab as Plot
\'\'\'修改1\'\'\'
Sub1 = Plot.subplot(211)
Sub2 = Plot.subplot(212)
index = []
close = []
volume = []
while True:
    Index, Close, Volume = F1.Run_client()
    index.append(Index)
    close.append(Close)
    volume.append(Volume)
    if Index > 10:
        Sub1.plot(index[Index-10:Index-1:1], close[Index-10:Index-1:1])    
        Sub2.bar(index[Index-10:Index-1:1], volume[Index-10:Index-1:1])    
    Plot.pause(0.01)

自设变量,头文字大写!

录像7

补充:

  • 1.
import struct
import sqlalchemy
import pandas
Engine = sqlalchemy.create_engine(\'mssql+pyodbc://sa:123456@XiTongDSN\')
Dataframe = pandas.read_sql(\'sh\', Engine)
Data, = struct.unpack(\'10s\', struct.pack(\'10s\', Dataframe[\'date\'][0].encode(\'utf-8\')))
print(Data.decode(\'utf-8\'))

360截图20160602171341622

  • 2.
import struct
import sqlalchemy
import pandas
Engine = sqlalchemy.create_engine(\'mssql+pyodbc://sa:123456@XiTongDSN\')
Dataframe = pandas.read_sql(\'sh\', Engine)
A = Dataframe[:1]
print(A, \'\\n\')
B = struct.pack(\'f10s\', A[\'open\'][0], A[\'date\'][0].encode(\'utf-8\'))
print(B, \'\\n\')
C, D = struct.unpack(\'f10s\', B)
print(C, D.decode(\'utf-8\'))

360截图20160602171341622

以上是关于Python socket编程之五:更新分时图的主要内容,如果未能解决你的问题,请参考以下文章

python编程基础之五

python编程入门之五:元组

python编程入门之五:元组

Python猫荐书系列之五:Python高性能编程

Python网络编程2018-01-26更新

Visual C++编程技巧之五