我正在读取一个文件,其中每行包含一个二进制字符串,如01000000 00001000 00000000 11111111
,以及一个数字,0或1,二进制字符串后面的两个空格对应于该二进制字符串。所以一个示例线看起来像:
01000000 00001000 00000000 11111111 0
我希望我的程序输出这个:
['01000000', '00001000', '00000000', '11111111']
['0']
这是我现在的代码:
def main():
f=open('file.txt', 'r').readlines()
for line in f:
words = line.split(" ", 1)
wordsList=list(words)
for i in range(0, len(wordsList)-1):
binary = wordsList[i:i+1]
link = wordsList[i+1:i+2]
print(binary)
print(link)
main()
现在,当我运行它时,程序会返回:
['01000000 00001000 00000000 1111111']
['0']
我在这里缺少什么?
答案 0 :(得分:1)
你应该拆分整行,然后切掉最后的数字。
要拆分该行,请使用line.split()
。默认参数可以正常工作。
要对生成的数组进行切片,line[:-1]
会抓取所有元素,但不包括最后一个元素。 line[-1:]
抓住最后一个元素。
示例程序:
def main():
with open('file.txt') as f:
for line in f:
line = line.split()
binary = line[:-1]
link = line[-1:]
print(binary)
print(link)
if __name__ == "__main__":
main()