Python解析二进制数据来记录文件

时间:2012-11-30 14:51:19

标签: python binary

我有一个读取二进制文件的代码:

n = 820
with open('/home/drdos/work/PTSIBS01.PDA', "rb") as f:
    while True:
        data = f.read(n)
        if not data:
            break

        filename = str(data[3:18])
        x = open(filename, 'wb').write(data)

但我的问题是文件我尝试迭代和分割,因为你在c0de上看到的包含双斜杠(" //")的名字如下:

07112011142635 // TS

并且程序只运行2次,然后在创建2个文件之后说:

drdos@poison:~/work$ python pybin.py
Traceback (most recent call last):
  File "pybin.py", line 11, in <module>
    x = open(filename, 'wb').write(data)
IOError: [Errno 2] No such file or directory: '12011142635//PT'

在简历中只给出一个基本视图,我的代码存在于从这个位二进制文​​件创建一个记录文件,每个820字节创建一个文件,其内容为820字节,文件名是字符串的精确副本存在于3字节和18字节之间。

file type = File.Dat 我需要提取每条记录的每条记录= 1记录等于:

Field  |     Format  |  name  | len    | description
1        array         NR_UP    2        //
2        array         Bla_N    16       ASCII coded i need for filename
3        Binary Array   Sig     256      content
4        Binary Array   Sig     270      content
5        Binary Array   SigA    256      content
6        Hash           Hash    20       Sha1 

对于每个这样的记录,我需要一个文件:)和所有20Mb的源(File.dat),但任何人都想改变我的原始代码或更好的想法如何做到这一点将是伟大的。

0 个答案:

没有答案