Archive for the 'Python' Category

Вставляем нули перед цифрами, Python

Задача: написать функцию которая переводит целое число в строку определённого размера, содержащую это целое число и нули.

То есть:
5 >> 00005
123 >> 00123

?нструменты: Python, модули os, sys

UPD: Пост, конечно, смешной, потому как всё что я здесь расписываю в Питоне решается на раз без написания всяких функций. Смотри коменты. Продолжать читать имеет смысл только если хочется узнать зачем же нам решать такую задачу 🙂 Ещё можно добавить в коменты свой вариант решения, не только на питоне 🙂

Сразу скажу что я абсолютно уверен что эта задача решается в питоне какой ни будь встроенной функцией, и буду благодарен, если кто ни будь мне на неё укажет. Мне же, к сожалению, ничего раскопать не удалось. Ещё больше я уверен в том что это делает и какой-нибудь awk в одну строчку, но мне нужна была питоновская функция.

Для чего это нужно? Сделано это было для чтения модельных файлов, у которых имена определяются именно таким образом, но потом оказалось полезным и для создания gif файлов из ps при помощи convert (чтоб сортировало по порядку). Хотя ещё позже обнаружилось что gif файлы прекрасно создаются и без этого :))). Оба примера я приведу. Также приведу оригинальную функцию для MATLAB, которая делает то же самое.

Объяснений много не будет, потому что объяснять там особо нечего )

Сам скрипт:
Read more »

Загрузка файлов с ftp при помощи Python

Задача: ежедневно загружать последний появившийся файл из определённой ftp директории.
?нструменты: Python с библиотеками string, os, urllib2 а также программа w g e t

Сразу скажу почему пишу w g e t разрядкой — потому что мой хостер каким-то образом сечёт это название и не даёт мне сохранять пост (говорит что ваши злобные хакерские приёмчики не пройдут).

Загружать будем ежедневные данные по поверхностной температуре океана, которые появляются на одном из ftp NOAA. Описание данных доступно тут.
Но, естественно, загружать можно что угодно. Главное чтобы каждый день, или месяц, или год, в данной ftp директории появлялся новый файл 🙂

Сначала скрипт, он совсем простой:
Read more »

Даты и время в Python

Задача: преобразовать время модели в реальное время (на самом деле просто прибавить к начальному времени пару дней и посмотреть что получится 🙂 )
?нструменты: Python, модуль time.

К сожалению не все модели настолько продвинулись чтобы обрабатывать человеческое время. Гораздо удобней им начинать от начала и работать через определённые временные интервалы, не заботясь о днях, годах, месяцах и тому подобных глупостях. Мы же хотим привязать модельное время к реальному. Для этого была написана следующая питоновская функция:
Read more »

Боле продвинутый конвертер данных в Python

Задача: делаем конвертер на базе предыдущего, но при этом будем загружать целиком данные в списки и массивы а потом обрабатывать их.

?нструменты: Python, NumPy, SciTools, Gnuplot.py

Данные те же, как и способ использования скрипта.

Read more »

Простейший конвертер данных в Python

Задача: Есть файл с данными расположенными в двух колонках. Нужно его прочитать, изменить данные во второй колонке и записать в новый файл. Работать должно так:

script.py input_file.dat output_file.dat

?нструменты: Python

Это одна из самых популярных задач в научном программировании, поэтому ей мы и продолжим знакомство с Python.

Вторая часть эпопеи про конвертер тут.

Read more »

Читаем ascii файл в Python

Задача: прочитать файл с ascii данными и разбить его по матрицам

?нструменты: NumPy, PyNGL, SciPy

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

Некоторые видят в NumPy хорошую альтернативу MATLAB. Эти два языка имеют некоторое сходство: они оба являются интерпретируемыми и оба позволяют пользователю писать быстрые програмы, поскольку большинство операций производится над массивами и матрицами а не над скалярными значениями. MATLAB обладает тем преимуществом что в нём встроены тысячи математических функций и ещё гораздо больше доступно в коммерческих и свободных библиотеках. В то же время NumPy является более современным и полным языком программирования, а также open source и бесплатным продуктом. Библиотека SciPy добавляет ещё больше MATLAB подобной функциональности, а Matplotlib — пакет обеспечивающий MATLAB подобный функционал в области графики. Хороший рассказ о питоновских библиотеках которыми можно заменить матлаб можно прочесть здесь.

Ну и поскольку для океанолога главным вопросом при изучении любого языка является «как читать и записывать данные», то с этого и начнём.

Read more »

← Предыдущая страница