Winerror 2 не удается найти указанный файл
У меня есть программа на Фортране, и я хочу запустить ее на Python для нескольких файлов. У меня 2000 входных файлов, но в моем коде Fortran я могу запускать только один файл за раз. Как мне вызвать программу Fortran в python?
Мой сценарий:
Ошибка:
Изменить:
Ошибка:
Я изменил свой сценарий, как показано ниже: но ошибка такая же
Ошибка: 2
Popen ожидает список строк для вызовов без оболочки и строку для вызовов оболочки.
Вызов subprocess.Popen с shell = True:
Надеюсь, это решит вашу проблему.
Popen ожидает список строк для вызовов без оболочки и строку для вызовов оболочки.
Вызов subprocess.Popen with shell = Верно:
Надеюсь, это решит вашу проблему .
Я считаю, что вам нужен файл .f как параметр, а не как однострочную команду. то же самое с "- domain" + i , который я бы разделил на два элемента списка. Предполагая, что:
-
у вас есть путь, заданный для исполняемого файла FORTRAN ,
Я бы изменил эту строку:
Если это не сработает, вам следует выполнить os.path.exists () для . f и убедитесь, что вы можете запустить исполняемый файл FORTRAN без какого-либо пути, и установите соответствующий путь или системную переменную пути
Я настоятельно рекомендую указать полный путь для вашего исполняемый файл:
, если вам нужно преобразовать косую черту в обратную. косые черты, как предлагается в одном из комментариев, вы можете сделать это:
[РЕДАКТИРОВАТЬ 7 марта 2017 г.]
Следующая строка неверна:
Я не уверен, почему у вас
/ в качестве префикса для каждого пути, не делайте этого.
[2-е ИЗМЕНЕНИЕ, 7 марта 2017 г.]
Не знаю этот FORTRAN или ftn95.exe, нужна ли оболочка для правильной работы? В этом случае вам нужно запустить следующим образом:
Вам действительно нужно попробовать запустить команду вручную из рабочего каталога, из которого работает ваш скрипт python. Когда у вас есть команда, которая действительно работает, создайте команду subprocess .
Я считаю, что вам нужен файл .f как параметр, а не как однострочную команду. то же самое с "- domain" + i , который я бы разделил на два элемента списка. Предполагая, что:
-
у вас есть путь, заданный для исполняемого файла FORTRAN ,
Я бы изменил эту строку:
Если это не работает, вы должны выполнить os.path.exists () для файла .f и проверить, можете ли вы запустить FORTRAN исполняемый файл без какого-либо пути и соответствующим образом установите путь или системную переменную пути
[ИЗМЕНИТЬ 6 марта 2017]
Я настоятельно рекомендую указать полный путь для вашего исполняемый файл:
, если вам нужно преобразовать косую черту в обратную. косые черты, как предлагается в одном из комментариев, вы можете сделать это:
[РЕДАКТИРОВАТЬ 7 марта 2017 г.]
Следующая строка неверна:
Я не уверен, почему у вас
/ в качестве префикса для каждого пути, не делайте этого.
[2-е ИЗМЕНЕНИЕ, 7 марта 2017 г.]
Не знаю этот FORTRAN или ftn95.exe, нужна ли оболочка для правильной работы? В этом случае вам нужно запустить следующим образом:
Вам действительно нужно попробовать запустить команду вручную из рабочего каталога, из которого работает ваш скрипт python. Когда у вас есть команда, которая действительно работает, создайте команду subprocess .
спасибо, ваша первая ошибка приводит меня сюда, и решение тоже решает мою!
для ошибки разрешения, f = open ('output', 'w +' ) , измените его на f = open (output + 'output', 'w +') .
наверняка вы могли бы запустить python/свой скрипт от имени администратора, чтобы передать ошибку разрешения
спасибо, ваша первая ошибка направляет меня сюда, и решение тоже решает мою!
для ошибки разрешения, f = open ('output', ' w + ') , замените его на f = open (output +' output ',' w + ') .
наверняка, вы могли бы запустить python/ваш скрипт от имени администратора, чтобы передать ошибку разрешения
Python FileNotFoundError: [WinError 2] Системе не удается найти указанный файл
неправильное описание
анализ проблемы
Позже было найдено следующее решение для stackoverflow:
Чтобы использовать echo в дочернем процессе в Windows, вам нужно установить shell =True , Потому что echo - это не отдельная команда, а команда, встроенная в Window CMD
Также обратите внимание, что shell = True следует использовать только в случае крайней необходимости
Найдено в папке lib subprocess.py
- ищи class Popen(object):
- буду __init__ средний shell=False изменить в shell=True
Интеллектуальная рекомендация
Краткое описание общих функций MPI
содержание 1, основная функция MPI 2, точка-точка функция связи 3, коллективная функция связи 1, основная функция MPI MPI_Init(&argc, &argv) Информировать системы MPI для выполнения всех необх.
Примечание 9: EL выражение
JVM память
концепция Виртуальная машина JVM управляет собственной памятью, которая разделяет память во многие блоки, наиболее распространенной для памяти стека и памяти кучи. 1 структура виртуальной машины JVM H.
Проблема сетевого запроса на Android 9.0
вЗапустите Android 9 (API Уровень 28) или вышеНа устройстве операционной системы Android, чтобы обеспечить безопасность пользовательских данных и устройств, использование по умолчанию для зашифрованно.
Учебная запись по Webpack (3) В статье рассказывается о создании webpack4.0.
предисловие Для изучения веб-пакета автор также предпринял много обходных путей. Есть много вещей, которые я хочу знать, но я не могу их найти. Автор поможет вам быстро начать работу. Цель этой статьи.
Читайте также: