Как считывать значения из текстового файла со столбцами?

#python #slice

#python #срез

Вопрос:

Я пытаюсь прочитать данные из файла, который разделен на столбцы с данными за каждый год и строками с именами значений (например: количество раз, когда я открывал Firefox в 2015 году). Теперь я знаю, как читать определенную строку, но у меня возникают проблемы с чтением из разных столбцов. Они имеют ширину в 10 пробелов, но имеют только такие значения, как -0.5 и 1.2, поэтому они не доходят до десятых и только до 1 десятичного знака. Вот так:

 -3.5         1.0        -2.9         6.8
  

Как мне это сделать, чтобы прочитать эти значения, поскольку я должен сравнивать их как значения с плавающей точкой с другими данными? Я бы нарезал его? Если это так, я не нашел способа сделать это.

Комментарии:

1. data = [float(cell) for cell in line.split()] может помочь.

Ответ №1:

Если вы знаете, сколько столбцов у вас будет, вы можете разделить пробелы и принудительно использовать значение с плавающей точкой:

 [float(i) for i in "-3.5         1.0        -2.9         6.8".split()]
  

Выдает:

 [-3.5, 1.0, -2.9, 6.8]
  

Ответ №2:

После того, как вы получили свою строку в строке, самым простым было бы разделить строку на пробелы.

 values = line.split()
  

Итерация по этому списку и приведение к значению с плавающей точкой.

 float_values = [float(v) for v in values]
  

Комментарии:

1. Спасибо! Итак, из любопытства, есть ли способ сделать это с помощью индексации или путем нарезки? Кто-то сказал мне, что есть способ сделать это без .split(), но, похоже, я не могу найти «красивый» способ сделать это. Я буду использовать это, но просто любопытно.

2. «сплит» — ваш друг. Проблема здесь в том, что вам нужно знать длину символа значения.