python if and_A股历史上股价最高的十只股票(Python)

  • Post author:
  • Post category:python


编写Python代码如下:

#请使用不复权的日K线数据

import os

#缓存数据

class SecurityData:

code = ” #股票代码

date = ” #最高价日期

name = ” #股票名称

value = 0 #最高价数值

#定义列表

lst = []

#打开日志文件

fs = open(r’C:\Py\result.txt’,’a+’)

#循环遍历所有的日K线文件

for root, dirs, files in os.walk(r’C:\Py\day’):

for file in files:

#写日志

print(‘正在计算’ + file)

#打开日K线文件

fs2 = open(os.path.join(root,file), ‘r’, True)

#索引

pos = 0

#历史最高价

maxHigh = 0

#最大价格的日期

maxDate = ”

#股票名称

sName = ”

#循环遍历每一行

while True:

#读取改行

line = fs2.readline()

#没有行的时候退出

if not line: break

#去除前2行和尾行

if pos > 1 and len(line) > 20:

#分割字符串

strs = line.split(‘,’)

#最高价取第三个

high = float(strs[2])

#比较最高价

if high > maxHigh:

maxHigh = high

maxDate = strs[0]

elif pos == 0:

sName = line[line.find(‘ ‘) + 1 : line.find(‘ 日线’)]

#累加索引

pos = pos + 1

#保存到列表中

securityData = SecurityData()

securityData.code = file

securityData.date = maxDate

securityData.value = maxHigh

securityData.name = sName

lst.append(securityData)

#关闭文件流

fs2.close()

#给列表排序

from operator import attrgetter

lst2 = sorted(lst, key=attrgetter(‘value’), reverse=True)

#输出前10的结果

count = 0

for val in lst2:

if count >= 10:

break;

print(‘第’ + str(count + 1) + ‘名:’ +val.name + “,” +  str(val.value) + ‘元/股(‘ + val.date + ‘)’)

fs.write(‘第’ + str(count + 1) + ‘名:’ +val.name + “,” +  str(val.value) + ‘元/股(‘ + val.date + ‘)\r\n’ )

count = count + 1

#关闭文件流

fs.close()

运行结果:

第1名:ST中安,3550.0元/股(1992-05-25)

第2名:云赛智联,2587.5元/股(1992-05-25)

第3名:贵州茅台,1828.0元/股(2020-09-02)

第4名:康华生物,996.0元/股(2020-08-04)

第5名:卓胜微,718.4元/股(2020-06-24)

第6名:申华控股,702.5元/股(1992-05-25)

第7名:长春高新,683.78元/股(2020-06-08)

第8名:吉比特,671.6元/股(2020-08-05)

第9名:石头科技,607.01元/股(2020-09-24)

第10名:*ST飞乐,600.4元/股(1991-08-23)

原来贵州茅台只能排三哦!

6819886a20e3d2e0f2368ee5544449bb.png