我有一个读取二进制文件的代码:
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),但任何人都想改变我的原始代码或更好的想法如何做到这一点将是伟大的。