составление списка из определенных частей текстового файла - PullRequest
0 голосов
/ 03 марта 2019

привет, я сделал это небольшое упражнение для себя, я хочу вытащить последнее число в каждой строке. В этом текстовом файле 5 строк и 6 цифр / строка, разделенных пробелами.Я сделал цикл, чтобы получить все оставшиеся символы выбранной строки, начиная с 5-го пробела.он работает для каждой строки print (findtext (от 0 до 3)), кроме последней строки, если последняя цифра содержит менее 3 символов ... что не так?Я не могу понять это

text = open("text","r")
lines = text.readlines()

def findtext(c):
    count = 0
    count2 = 0

    while count < len(lines[c]) and count2<5:
        if lines[c][count] == " ":
            count2=count2+1

        count=count+1

    return float(lines[c][count:len(lines[c])-1])                   

print(findtext(0))

Ответы [ 2 ]

0 голосов
/ 03 марта 2019
with open('file') as f :
    numbers = f.readlines()

last_nums = [ line.split()[-1] for line in numbers ]

line.split() разделит строку на элементы списка, используя пробел в качестве разделителя (если вы не указали в нем аргументов), [-1] получит для вас последний элемент этого списка

0 голосов
/ 03 марта 2019

Предложенное вами решение не кажется мне очень Pythonic.

with open('you_file') as lines:
    for line in lines:
        # Exhaust the iterator
        pass
    # Split by whitespace and get the last element
    *_, last = line.split()
    print(last)

Несколько вещей:

  • Доступ к файлам в менеджерах контекста, поскольку это гарантирует, что ресурсы уничтожаются правильно
  • Если вы не нуждаетесь в отслеживании индексов, это затрудняет чтение кода
  • Используйте split вместо подсчета буквенного пробела
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...