全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1059|回复: 13
打印 上一主题 下一主题

全球编程论坛之 python@char 格式

[复制链接]
跳转到指定楼层
1#
发表于 2021-12-26 20:52:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想用脚本来处理通达信的自定义板块文件,查询得知文件为blocknew.cfg

查询这个文件的格式为:

1) 每个板块120字节
2) 板块名称50字节
3) 板块文件名头70字节

由于本菜只会一点python,请问如何把字符串变成固定字节写入cfg文件?
举例,涨停板块,文件为zt.blk
原来的blocknew.cfg打开就是:涨停NULNULNUL  ztNULNUL

求教如何通过python 实现?
推荐
发表于 2021-12-26 21:14:13 | 只看该作者
本帖最后由 sRGB 于 2021-12-26 21:16 编辑

涨停NULNULNUL    替换成   ztNULNUL  吗?

blocknew.cfg  这个文件什么内容


https://blog.csdn.net/liuyukuan/article/details/79483812

点评

大佬来了  发表于 2021-12-26 21:14
3#
发表于 2021-12-26 21:16:22 | 只看该作者
没懂你说的什么意思
4#
发表于 2021-12-26 21:22:54 | 只看该作者
本帖最后由 sRGB 于 2021-12-26 22:51 编辑

from ctypes import *

  1. class Location(Structure):
  2.     _fields_ = [
  3.         ('lon', c_double),
  4.         ('lat', c_double)]
复制代码

不知道使用  ctypes 库是否复合你的需求,
你可以参考 文档,测试下上面语句直接读写文件




python 按 C语言数据结构读写数据

ctypes 是 Python 的外部函数库。它提供了与 C 兼容的数据类型,并允许调用 DLL 或共享库中的函数。可使用该模块以纯 Python 形式对这些库进行封装。

基础数据类型
ctypes 定义了一些和C兼容的基本数据类型:

ctypes 类型   C 类型   Python 类型
c_int        int        int
c_float        float        float
c_double        double        float
c_char_p        char* (以 NUL 结尾)        字节串对象或 None


使用 C语言读文件是正确的,python 读取二进制文件麻烦点


使用  import struct  这个处理数据结构的包也很方便
aa = struct.pack
bb = struct.unpack
6#
 楼主| 发表于 2021-12-26 21:32:55 | 只看该作者
sRGB 发表于 2021-12-26 21:22
from ctypes import *

刚试了下二进制打开
前面是ANSI编码的二进制,后面是用\x00补位的
我可以把我的文字用ANSI转成二进制,后面用\x00补齐

但没操作过,求教大佬应该用什么库?然后我再去查文档
7#
发表于 2021-12-26 21:38:06 | 只看该作者
Tankie 发表于 2021-12-26 21:32
刚试了下二进制打开
前面是ANSI编码的二进制,后面是用\x00补位的
我可以把我的文字用ANSI转成二进制,后 ...



python 按 C语言数据结构读写数据
8#
 楼主| 发表于 2021-12-26 21:41:06 | 只看该作者
sRGB 发表于 2021-12-26 21:38
python 按 C语言数据结构读写数据

大佬,我知道要用C语言数据结构写

可是我完全不懂啊

就这个填补的\x00我都没搞懂用python怎么搞
9#
发表于 2021-12-26 21:42:57 | 只看该作者
用c写那是超简单
10#
 楼主| 发表于 2021-12-26 22:15:08 | 只看该作者
我决定明天用简单粗暴的方式来试下
name = '板块名字‘
name_len = len(name)*2
space_len = 50 - name_len
space = b'\x00' * space_len
再拼接上去,强行写入二进制
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-12-14 16:54 , Processed in 0.066731 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表