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

我在这里想念什么?

最佳答案

您应该将整行分开,然后切下最后的数字。

要分割行,请使用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()

关于python - Python将文件中的行分成两个单独的列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37214393/

10-10 18:22