Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 17, 2010 21:07:48

knkd
От:
Зарегистрирован: 2009-06-14
Сообщения: 225
Репутация: +  0  -
Профиль   Отправить e-mail  

Консоль

o7412369815963
а чем полезен фортран? просто интересно…
Есть около пол-гектара исходников узкоспециальных библиотек.
На их разработку/программирование/тестирование, затрачено миллионы человеко-часов.
Они оптимизированы на очень низком уровне. До такой степени что во многих местах код совершенно нечитаем.
Альтернатив нет. Точнее есть, но все они (и те которыми пользуется НАСА) тоже написаны на Фортране. Максимум Ф77, а многие части ещё на самом первом варианте фортрана.

Что посоветуете с этим зоопарком делать? :)

Потому Си находится в очереди на изучение строго за Фортраном.

o7412369815963
чем он лучше питона
:)
Питон преимуществонно использую для подготовки данных фортран-программам и обработки результатов.
В перспективе - разработка GUI (Qt/Web) для управления фортран-программами.



Отредактировано (Апрель 17, 2010 21:09:18)

Офлайн

#2 Апрель 17, 2010 23:40:04

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Консоль

knkd, у вас довольно редкий случай. И вы правы в данном контексте применения.
Вопрос: как дружите фортран и Python? Насколько я знаю у фортрана нет стабильно ABI. Или просто запускаете программы и на питоне обрабатываете файлы ввода-вывода?



Офлайн

#3 Апрель 18, 2010 00:23:00

knkd
От:
Зарегистрирован: 2009-06-14
Сообщения: 225
Репутация: +  0  -
Профиль   Отправить e-mail  

Консоль

Андрей Светлов
Или просто запускаете программы и на питоне обрабатываете файлы ввода-вывода?
Именно так. Либо запускаю программы из Python (os.popen3(…)), либо ещё тупее - поочерёдно BAT-файлами.
Вводить данные в фиксированном формате (особенно если пробелы между ними не предусмотрены) очень долго и чревато ошибками.
По возможности изменяю формат ввода на более читаемый, автоматизирую диалоги (in, out, err = os.popen3(…)), вывожу результаты в CSV.
По незнанию пока Фортрана внутрь программ не лезу, когда/если узнаю тоже лезть особо не собираюсь (люди умней меня делали).

Андрей Светлов
Насколько я знаю у фортрана нет стабильно ABI.
Якобы с версии Ф95 его состыковали с С++, но точно не знаю.
Есть разные f2py и f2c, но они дают нестабильные результаты даже на простейших программах.



Офлайн

#4 Апрель 18, 2010 13:57:04

Vader
От:
Зарегистрирован: 2010-01-30
Сообщения: 152
Репутация: +  0  -
Профиль   Отправить e-mail  

Консоль

sumrak_ss
Подскажите, каким образом можно реализовать, чтобы вывод любой консольной программы происходил не с новой строки, а постоянно обновлялся в первой?
Если я правильно понял задачу, то можно попробовать так:
import time
import sys

for i in xrange(10):
sys.stdout.write(str(i)),
sys.stdout.flush()
sys.stdout.write('\b')
sys.stdout.flush()
time.sleep(0.5)



Офлайн

#5 Апрель 19, 2010 09:39:47

plusplus
От:
Зарегистрирован: 2009-01-05
Сообщения: 418
Репутация: +  15  -
Профиль   Отправить e-mail  

Консоль

А не подскажете, возможно ли сделать следующее. У меня есть пул потоков, реализованный через queue, некоторой функции, ну пусть такой

def message()
mes_id = gen_id() # рандомный идентификатор генерится, в общем просто набор букв
print id,"start"
print id,"end"
Сейчас у меня все эти строчки выводятся вперемешку, каждая с новой строки, подскажите, как можно сделать для начала так, чтобы для одинаковых id, они выводились в одной строке.
А в идеале конечно, лучше бы было так, не знаю насколько это реально. Т.к. у меня пул потоков, то, например, одновременно работают 15 потоков, как сделать так, чтобы у меня на консоль выводилось тоже только 15 строк? То есть как только один поток закончит работу, то строчка освободится и пусть новый поток использует эту строку, а не переходит на новую.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version