Reading from a text file python

前端 未结 4 1469
长情又很酷
长情又很酷 2021-01-24 13:38

I have a text file which contains a matrix of numbers:

999 999  10  8
3 4 999 999 999 
6 999 2 7 999
999 6 3 5  6
999 9 1 10 999
10 6 999 2 2 999
相关标签:
4条回答
  • 2021-01-24 13:52

    For each line, split on space character, and then convert each token to an int. One way to do this, using list comprehension, is:

    s = "999 999 10 8"
    [int(t) for t in s.split(" ")]
    #evaluates to [999, 999, 10, 8]
    
    0 讨论(0)
  • 2021-01-24 13:58

    Using map() to get a list of lists:

    >>> with open('myfile.txt') as matrix:
    ...     [map(int, line.split()) for line in matrix]
    ...
    [[999, 999, 10, 8], [3, 4, 999, 999, 999], [6, 999, 2, 7, 999], [999, 6, 3, 5, 6], [999, 9, 1, 10, 999], [10, 6, 999, 2, 2, 999]]
    
    0 讨论(0)
  • 2021-01-24 14:09
    nums = []
    with open('file.txt') as f:
        for line in f:
            nums.append([int(n) for n in line.split()])
    

    You could write that as one list comprehension, but that could get nasty.

    0 讨论(0)
  • 2021-01-24 14:10

    try that:

    matrix = [[int(i) for i in line.split()] for line in open('myfile.txt')]
    

    [edit] if you don't want the first line just read it before.

    with open('myfile') as f:
        f.readline()
        matrix = ....
    
    0 讨论(0)
提交回复
热议问题