小编Kij*_*iji的帖子

在pyparsing中使用token作为变量

我最近开始使用python/pyparsing来处理一个十六进制值字符串,我遇到了这个问题:考虑这个字符串:

string = "10020304059917368584304025326"
Run Code Online (Sandbox Code Playgroud)

我希望最终结果如下:

['10', '02', '03', ['04', '05', '9917365843'], ['04', '02', '5326']]
Run Code Online (Sandbox Code Playgroud)

假定04是一个标签,这意味着数据(相同的概念在ASN.1),和05是数据的大小.我没有看到如何在pyparsing代码上使用size变量.我能做的最好的事情是:

byte = Word(hexnums, exact=2)
process = byte + byte + byte + Word(hexnums)
newstring = process.parseString(string)
print (newstring.dump())
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.


PS:在Hooked的帮助下,我的最终代码是:

from pyparsing import *

string = "10 02 03 04 05 99 17 36 58 43 04 02 53 26"

tag = Word(hexnums, exact=2)
size =  Word(hexnums)
array = Group(tag + countedArray(size))

process = tag + tag + tag + ZeroOrMore(array)

newstring = process.parseString(string) …
Run Code Online (Sandbox Code Playgroud)

pyparsing python-3.x

5
推荐指数
1
解决办法
312
查看次数

在 Linux 上旋转二进制文件

我一直在尝试使用 logrotate 根据大小旋转二进制文件,但该程序似乎不适用于二进制文件。就其价值而言,这是我用于此特定文件的配置:

<filepath> {
  copytruncate
  compress
  missingok
  size 10M
  rotate 100
  nomail
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议一个可以处理二进制文件并具有与 logrotate 相同的基本功能的程序吗?

linux binaryfiles logrotate

1
推荐指数
1
解决办法
2299
查看次数

标签 统计

binaryfiles ×1

linux ×1

logrotate ×1

pyparsing ×1

python-3.x ×1