Winerror 2 не удается найти указанный файл

Обновлено: 01.07.2024

У меня есть программа на Фортране, и я хочу запустить ее на 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.

предисловие Для изучения веб-пакета автор также предпринял много обходных путей. Есть много вещей, которые я хочу знать, но я не могу их найти. Автор поможет вам быстро начать работу. Цель этой статьи.

Читайте также: