Почему открытие окна проводника и выбор файла с помощью подпроцесса Python возвращает код ошибки 1

1

Я пишу код, который откроет окно проводника и выберет файл в Windows для определенного пути к файлу.

Я нашел решение здесь, которое, похоже, работает. Он открывает проводник Windows и выделяет файл по желанию. Тем не менее, я получаю код ошибки 1, возвращенный. В идеале, я хотел бы знать, было ли действие успешным, проверяя код возврата, но я получаю 1, даже когда он, кажется, ведет себя правильно.

Мой код выглядит так:

a_file = r"C:\a_path\to\afile.file"
cmd_args = ['explorer', '/select,', a_file]
p = subprocess.call(cmd_args)
print(p)

Что возвращает:

1

Я также пробовал использовать os.system и subprocess.Popen всякий случай, что имело значение (чего у него не было). Я использую Python 2.7 и тестирование на Windows 10 64bit, хотя я бы предпочел, чтобы мое решение было совместимо с как можно большим количеством настроек Windows и Python.

Если кто-нибудь знает, почему и как избежать этого, это было бы потрясающе! Спасибо

  • 2
    В моем окружении даже вызов explorer без аргументов каждый раз возвращает 1. Похоже, что Explorer не указывает на успех или неудачу с кодами выхода.
Теги:
python-2.7
subprocess
error-code
windows-explorer

1 ответ

1
Лучший ответ

Люди наблюдали за графическими интерфейсами Windows, чтобы вернуть код выхода 1 на некоторое время и прийти к его принятию.

Возможно, вы захотите попытаться управлять своей программой Windows через win32com, фрагмент кода для explorer.exe здесь и комментарии здесь.

  • 1
    Спасибо за ответ и ссылки, я пометил его как ответ, хотя я думаю, что в моем конкретном случае это, вероятно, больше усилий, чем стоит, и в настоящее время мы не поставляем pywin32. но я ценю ваше время и разъяснения!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню