全球主机交流论坛

标题: 全球编程论坛之 python@char 格式 [打印本页]

作者: Tankie    时间: 2021-12-26 20:52
标题: 全球编程论坛之 python@char 格式
想用脚本来处理通达信的自定义板块文件,查询得知文件为blocknew.cfg

查询这个文件的格式为:

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

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

求教如何通过python 实现?
作者: sRGB    时间: 2021-12-26 21:14
本帖最后由 sRGB 于 2021-12-26 21:16 编辑

涨停NULNULNUL    替换成   ztNULNUL  吗?

blocknew.cfg  这个文件什么内容


https://blog.csdn.net/liuyukuan/article/details/79483812
作者: alsas    时间: 2021-12-26 21:16
没懂你说的什么意思
作者: sRGB    时间: 2021-12-26 21:22
本帖最后由 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
作者: yjsx86    时间: 2021-12-26 21:24
没看懂
作者: Tankie    时间: 2021-12-26 21:32
sRGB 发表于 2021-12-26 21:22
from ctypes import *

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

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



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

作者: Tankie    时间: 2021-12-26 21:41
sRGB 发表于 2021-12-26 21:38
python 按 C语言数据结构读写数据

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

可是我完全不懂啊

就这个填补的\x00我都没搞懂用python怎么搞
作者: sdqu    时间: 2021-12-26 21:42
用c写那是超简单

作者: Tankie    时间: 2021-12-26 22:15
我决定明天用简单粗暴的方式来试下
name = '板块名字‘
name_len = len(name)*2
space_len = 50 - name_len
space = b'\x00' * space_len
再拼接上去,强行写入二进制

作者: sRGB    时间: 2021-12-26 22:48


使用这个处理数据结构的包也很方便
作者: Tankie    时间: 2021-12-27 08:20
sRGB 发表于 2021-12-26 22:48
使用这个处理数据结构的包也很方便

多谢,回头好好学学struct
作者: sRGB    时间: 2021-12-27 13:05
Python读写C语言数据结构 - ctypes 和 struct 库

https://loc.888543.xyz/thread-947219-1-1.html

读写C数据结构,基本上搞懂了




欢迎光临 全球主机交流论坛 (https://loc.888543.xyz/) Powered by Discuz! X3.4