Py学习  »  Python

Python提取通达信,自定义板块中成分股代码

一场孤独的自我修行 • 2 周前 • 127 次点击  


数据是个宝,研究少烦恼

挖的深,看的远,找规律

做笔记,练盘感,多总结

★★★★博文原创不易,源码使用过程中,如有疑问的地方,欢迎大家指正留言交流。喜欢的老铁可以点赞+收藏分享+置顶,小红牛在此表示感谢。★★

Python股票热点方向+龙头标的复盘系统6.66

股票热点数据分类统计系统3.0(padans+matplotlib+sqlite3)

股票精简节点记事本2.0优化版(tkinter+json)

量化教程: 教你快速上车,通达信量化平台(TdxQuant太强了,真香啊)

对复盘系统sqlites数据库中的,数据按时间截取数据

Python处理复盘系统中,sqlite3数据库中的json热点和行业字段

模拟炒股K线训练系统2.0(threading+mplfinance)

股票自选股公告系统1.0

(简易版)Ex写通达信自定义序列+外部数据1.0

使用Excel制作通达信自定义外部数据,安排!!!

关于小红牛软件,不再对外出售的正式说明!!

小红牛软件用户使用说明书(2)

龙虎榜小红牛软件帮助说明书

关于小红牛,通达信自定义数据指标的说明文档

通达信自定义数据系统,自定义游资席位的增加方法

通达信历史自定义数据替换教程@signals

教你在通达信中设置,和查看15个财经网站的股票数据

通达信指标公式28:龙虎榜股票池——主力控盘度的计算方法

通达信自定义数据的制作+导入+显示+选股

Tdx#自定义数据常用的指标编写与注释

通达信实现股票联动,消息号优化探测的方法1.2

通达信指标公式34:避雷参考,选股前,必须优先排除有垃圾属性的股。

通达信指标公式33:严重异动提醒,计算10/30日的涨跌幅偏离值

以下代码用于读取通达信(股票行情软件)的板块文件(.blk),并将自定义板块内的股票代码提取出来。同时,它会将给定的板块名称(如“自选股”)转换为拼音首字母,以匹配通达信板块文件的命名规则。

一、代码功能分解

1. get_initials(text)

作用:将汉字字符串转换为拼音首字母(小写),非汉字字符原样保留。
原理:利用 pypinyin 库的 pinyin(..., style=Style.FIRST_LETTER) 获取每个字符的拼音首字母,若转换失败则保留原字符。
get_initials("自选股")   # 返回 "zxg"

需要安装 pypinyin 库(若未安装):

pip install pypinyin

2.read_tdx_block_codes(file_path)

作用:读取通达信板块文件(.blk),返回文件中每行末尾6位作为股票代码的列表。
文件格式:通达信板块文件通常为 GBK 编码,每一行内容如 600519贵州茅台 或 600519,代码固定取最后6位数字(兼容不同长度)。
返回值:股票代码字符串列表,如 ['600519', '000001', ...]。

完整源码如下

# -*- coding: utf-8 -*-# @Author : 小红牛# 微信公众号:gxzfp888import osfrom pypinyin import pinyin, Style
def get_initials(text):    """将文本中的汉字转换为拼音首字母,非汉字直接保留"""    result = []    for char in text:        py = pinyin(char, style=Style.FIRST_LETTER)        if py and py[0]:            result.append(py[0][0].lower())        else:            result.append(char)    return ''.join(result)

def read_tdx_block_codes(file_path):    """    读取通达信板块文件(.blk),提取每行中的股票代码(后6位数字)
    参数:        file_path (str): 板块文件的完整路径
    返回:        list: 股票代码字符串列表,例如 ['600519', '000001', ...]    """    codes = []    try:        with open(file_path, 'r', encoding='gbk'as f:            for line in f:                line = line.strip()                if not line:                    continue                # 取最后6位作为股票代码(兼容长度为6的行和含有前缀的行)                code = line[-6:] if len(line) >= 6 else line                codes.append(code)        return codes    except FileNotFoundError:        print(f"错误:文件未找到 - {file_path}")        return []    except Exception as e:        print(f"读取文件时出错:{e}")        return []
# 使用示例if __name__ == "__main__":
   # 改成你的通达信路径,和要查询的自定义板块,如自选股。    block = get_initials('自选股')        path = f'E:/new_tdx64/T0002/blocknew/{block}.blk'    print(block,path)    stock_codes = read_tdx_block_codes(path)    print("板块成分股如下:", stock_codes)

温馨提示:股市有风险,投资需谨慎。本文所写内容仅供粉丝们参考使用,仅为个人研究观点表述,股友们须自己思考与分析股市。


-!! 完毕 ,感谢您的收看!!-


-------★历史博文集合★------

股软件  龙虎榜小红牛分析系统  资金大单系统  

通达信主附图指标改选股器  通达信自定义数据系统

自定义数据 其他股软  Ex系统 每日收盘数据

 通达信小技巧  tdx指标编写教程  Tdx指标公式

龙虎榜教程  游资盈亏数据  产业链上下游   股学堂

量化教程  指标回测  Python  我的股票笔记

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/195660