编写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)
原来贵州茅台只能排三哦!