假设有一个文件,文件里每一个行有两个内容,内容间以空格隔开 :
1.以010101这种二进制形式表达的内容,二进制的数据最长可能有3w个字符,
2.对第一列内容的唯一编号。
例:1010010101001010100100*******11000000101010 234567
利用Python 怎样读取每一行内容时可以将这个3w多位长的二进制数据读到变量里?
求各位大神帮忙看下。
首先,如果你在文件里保存的二进制就是0101这样的字符,那就先当作字符串读出来,这种情况下分隔每行的前后两列很容易。
datalist = [] with open(filepath) as f: for line in f.readlines(): data,order = line.strip().split(' ') datalist.append((int(data,2),order)) # 数据部分先转换成数字保存起来,待后续使用。如果数据部分是真正的二进制数据,而非01字符串,那么需要确保数据部分当作字符串读取出来没有换行符(0b00001010)以及空格(0b0010000),才可以用readlines和split来处理。
如果每行长度固定,也可以直接打开文件后,每次读取指定长度的内容来实现。
######f = open('test.txt', 'r')
lines = f.readlines()
binData = ''.join(lines)
######首先,如果你在文件里保存的二进制就是0101这样的字符,那就先当作字符串读出来,这种情况下分隔每行的前后两列很容易。
datalist = [] with open(filepath) as f: for line in f.readlines(): data,order = line.strip().split(' ') datalist.append((int(data,2),order)) # 数据部分先转换成数字保存起来,待后续使用。如果数据部分是真正的二进制数据,而非01字符串,那么需要确保数据部分当作字符串读取出来没有换行符(0b00001010)以及空格(0b0010000),才可以用readlines和split来处理。
如果每行长度固定,也可以直接打开文件后,每次读取指定长度的内容来实现。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。