Мне нужно использовать subprocess.Popen, чтобы открыть окно проводника (только в Windows) с путем, но путь, который я использую, имеет косую черту, и это не работает, только открывает обобщенное окно проводника ПК. Если я вручную заменю их обратной косой чертой, все будет работать нормально, но мне нужно, чтобы это произошло для переменного пути.
Я пытался использовать os.path.dirname, чтобы «нормализовать» путь, но это тоже не работает. IOW, этот код дает мне только обобщенное окно проводника ПК:
myRoot = "D:/SomePath/Somefile"
subprocess.Popen(r'explorer /select, myRoot')
или даже:
myRoot = "D:/SomePath/Somefile"
subprocess.Popen(r'explorer /select, os.path.abspath(myRoot)')
но это работает:
myRoot = "D:\SomePath\Somefile"
subprocess.Popen(r'explorer /select, myRoot')
Я также пытался вручную заменить эти строки с косой чертой, но я не могу получить это, сколько бы способов я ни пробовал (поэтому, очевидно, что-то не так). Любые подсказки? (Мне это нужно ТОЛЬКО для работы в Windows, и я никак не могу заставить косую черту не входить, потому что я читаю из файла, созданного с помощью внешней программы).
Я ценю помощь, которую люди пытаются предоставить - позвольте мне попытаться прояснить это. Строка пути поступает из внешнего файла, который я не могу контролировать. Таким образом, это ВСЕГДА выглядит как пример с косой чертой, который НЕ работает с открытием подпроцесса проводника, как бы я ни пытался (включая примеры, приведенные ниже).
Однако, если я просто вручную укажу путь с обратной косой чертой, это сработает. Итак, мне нужно что-то, что преобразует путь с прямой косой чертой в путь с обратной косой чертой. И пока ничего из предложенного здесь не работает.