Использование subprocess для открытия файла
Есть данная строка в коде:
subprocess.run(file_for_open, shell=True, encoding='UTF-8')
Не понимаю почему, но он не открывает файлы, в пути которых есть пробел. Но, если этот же пусть записать напрямую в subprocess.run, то он без проблем его откроет. Как можно решить проблему с пробелами, когда вводишь путь до файла через другую переменную?
Ответы (1 шт):
Автор решения: eri
→ Ссылка
Файл надо открывать через start
import subprocess, os, platform
filepath = "D:\\Ucheba\\Новая папка\\Линукс 1\\LR1.pdf"
if platform.system() == 'Darwin': # macOS
subprocess.call(('open', filepath))
elif platform.system() == 'Windows': # Windows
os.startfile(filepath)
else: # linux variants
subprocess.call(('xdg-open', filepath))
Или к одному стилю
import subprocess, platform
filepath = "C:\\Users\\eri\\Downloads\\Заявление на получение КЭП.pdf"
if platform.system() == 'Darwin': # macOS
subprocess.call(('open', filepath))
elif platform.system() == 'Windows': # Windows
subprocess.call(('start', "", filepath), shell=True)
else: # linux variants
subprocess.call(('xdg-open', filepath))