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

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

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

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

Андрей Светлов
Насколько я знаю у фортрана нет стабильно ABI.
Якобы с версии Ф95 его состыковали с С++, но точно не знаю.
Есть разные f2py и f2c, но они дают нестабильные результаты даже на простейших программах.
Vader
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)
plusplus
А не подскажете, возможно ли сделать следующее. У меня есть пул потоков, реализованный через queue, некоторой функции, ну пусть такой
def message()
mes_id = gen_id() # рандомный идентификатор генерится, в общем просто набор букв
print id,"start"
print id,"end"
Сейчас у меня все эти строчки выводятся вперемешку, каждая с новой строки, подскажите, как можно сделать для начала так, чтобы для одинаковых id, они выводились в одной строке.
А в идеале конечно, лучше бы было так, не знаю насколько это реально. Т.к. у меня пул потоков, то, например, одновременно работают 15 потоков, как сделать так, чтобы у меня на консоль выводилось тоже только 15 строк? То есть как только один поток закончит работу, то строчка освободится и пусть новый поток использует эту строку, а не переходит на новую.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB