Python将文件中的行拆分为两个单独的列表

时间:2016-05-13 15:53:02

标签: python string list binary

我正在读取一个文件,其中每行包含一个二进制字符串,如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']

我在这里缺少什么?

1 个答案:

答案 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()