LINUX.ORG.RU

Python , чтение из файла до пробела


0

0

Как можно в питоне прочитать символы до пробела ? Ну или по другому - отдельные слова.

пример файла :

0.0 0.0 2.0 0.0 2.0 2.0 0.0 2.0

и так далее.

Нужно прочитать каждое число и присвоить ему переменную. Числа - это координаты точек. Как срезать по индексам и байтам знаю , но здесь это не подходит, так как числа от 0 до 100 . Нужно читать до пробела и после пробела.

В итоге нужно вычислить длину замкнутой линии проходящую через все точки. За ранее спасибо.



Последнее исправление: A-T-R (всего исправлений: 2)

Trololo

А вот в Це и в Цепепе это делается без всяких костылей.

anonymous
()
Ответ на: комментарий от helios

> man ulimit

Не удивил. Пользователи оное юзают?

На убунте по дефолту такого нету, проверял. :)

На счёт пёрла так скажу - каждому языку свои задачи. Сам я его пытался освоить раза два, но задач достойных не возникало, так и не освоил. А вот питон - наше всё! Прост и ясен, не смотря на «дуратские отступы».

Кстати в питоне недавно враперы на libusb появились. Теперь можно дрова для usb устройств писать. Я конечно к этому не призываю, и даже, можно сказать, отговариваю. Это просто, как факт.

nanoo_linux
()
Ответ на: комментарий от nanoo_linux

дуратские отступы

Неее, отступы как раз кошерные! Сразу приучают человека писать по-человечески. Да и скобочек нету - тоже профит раздражало такое

        }
      }
    }
  }

А то, что у переменных нету префикса $ - ваще кайф. Если в перле это можно обосновать (зачем), то в пыхе - вообще не нужен. Только баксы и знают :)

helios ★★★★★
()
Ответ на: комментарий от helios

> А то, что у переменных нету префикса $ - ваще кайф. Если в перле это можно обосновать (зачем), то в пыхе - вообще не нужен

Это можно обосновать разве что тараканами в голове у Ларри. Потому что идея хардкодить тип переменной (и контекст выражения!) в имени ну очень нездоровая. В реальном коде все пользуются в основном ссылками и получается примерно то же, что в PHP. Правильное использование $ как оператора подстановки можно видеть в sh и tcl.

Hjorn
()
Ответ на: комментарий от A-T-R

А вот с понятиями лямда и мап знаком только из высшей математики , а с реализацией в питоне , сегодня буду разбираться.

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

dir ещё полезная команда, ipython полезная штука

In [1]: [x*x for x in range(100) if x / 2 == 0]
Out[1]: [0, 1]

In [2]: [x*x for x in range(10) if x % 2 == 0]
Out[2]: [0, 4, 16, 36, 64]

In [3]: eee = (x*x for x in range(10) if x % 2 == 0)

In [4]: eee.next()
Out[4]: 0

In [5]: eee.next()
Out[5]: 4

In [6]: eee.next()
Out[6]: 16

In [7]: eee.next()
Out[7]: 36

In [8]: eee.next()
Out[8]: 64

In [9]: eee.next()
---------------------------------------------------------------------------
<type 'exceptions.StopIteration'>         Traceback (most recent call last)

/home/darkelf/<ipython console> in <module>()

<type 'exceptions.StopIteration'>: 

In [10]: 

dimon555 ★★★★★
()
Ответ на: комментарий от A-T-R

хелп полезная команда

In [12]: sss = ''

In [13]: sss.sp
sss.split       sss.splitlines  

In [13]: help(sss.split)


In [14]: dir(sss)
Out[14]: 
['__add__',
 '__class__',
 '__contains__',
 '__delattr__',
 '__doc__',
 '__eq__',
 '__ge__',
 '__getattribute__',
 '__getitem__',
 '__getnewargs__',
 '__getslice__',
 '__gt__',
 '__hash__',
 '__init__',
 '__le__',
 '__len__',
 '__lt__',
 '__mod__',
 '__mul__',
 '__ne__',
 '__new__',
 '__reduce__',
 '__reduce_ex__',
 '__repr__',
 '__rmod__',
 '__rmul__',
 '__setattr__',
 '__str__',
 'capitalize',
 'center',
 'count',
 'decode',
 'encode',
 'endswith',
 'expandtabs',
 'find',
 'index',
 'isalnum',
 'isalpha',
 'isdigit',
 'islower',
 'isspace',
 'istitle',
 'isupper',
 'join',
 'ljust',
 'lower',
 'lstrip',
 'partition',
 'replace',
 'rfind',
 'rindex',
 'rjust',
 'rpartition',
 'rsplit',
 'rstrip',
 'split',
 'splitlines',
 'startswith',
 'strip',
 'swapcase',
 'title',
 'translate',
 'upper',
 'zfill']

In [15]: 


dimon555 ★★★★★
()
Ответ на: комментарий от dimon555

> с генератором списков, генератором выражений

откуда такой страшный перевод list comprehensions и generator expressions?

транзакционным протоколом

А это что такое? with statement?

anonymous
()

Собственно, на исходный вопрос про чтение числа из файла пока так и не ответили. Все предложенные решения сначала читают весь файл в память и затем разделяют его на слова split()'ом. В 99% случаев, наверное, так и нужно делать, если файл не гигантский. Как в питоне реализовать аналог

fscanf(fd, "%f", &value)
Или итератор по лексемам без чтения всего файла?

eth
()
Ответ на: комментарий от anonymous

>А это что такое? with statement?
поздно было, нет я имел ввиду итерационный протокол

dimon555 ★★★★★
()
Ответ на: комментарий от eth

>Или итератор по лексемам без чтения всего файла?
readline() или read(buffsize)

dimon555 ★★★★★
()
Ответ на: комментарий от helios

Если уж на перле и ДО ПРОБЕЛА то:

open FILE, 'file.txt' or die "Куда дел файл, паскуда?"; 
{
  local $/=" ";
  print "Read $_\n" while(<FILE>);
}
close FILE;

Но, к сожалению, перл в отличие от sed не держит разделителя строки в виде регулярных выражений.

vahvarh ★★★
()
Ответ на: комментарий от SV0L0CH

> Это хорошо что ты этим интересуешся. Это новая супер-пупер оптимизированя версия питона. Упрощена работа с файлами и регулярными выражениями. Частично введена типизация, словари начинаются с % а списки с @ и это очень удобно. Список аргументов доступен как обычный список. Введено много зарезервированых переменных. Всё очень удобно для обработки текста. Тебе такое обязательно понравится ;)

не подскажешь, как там с вашей «типизацией» сделать словарь словарей и обращаться к элементам как к @aaaaa[X][Y]?

Joe_Bishop
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.