"C:\Program Files\7-Zip\7z.exe" a "C:\\Файл с пробелами.7z" "C:\\Файл с пробелами.txt" -mx3
Вот тестовая программа:
# -*- coding: cp1251 -*-
import os
program='"C:\\Program Files\\7-Zip\\7z.exe"'
filenamein='"C:\\Файл с пробелами.txt"'
filenameout='"C:\\Файл с пробелами.7z"'
command=program + ' a ' + filenameout + ' ' + filenamein + ' -mx3'
print command
pipe1,pipe2,pipe3=os.popen3(command)
retout=pipe2.read()
reterr=pipe3.read()
print 'retout = '+retout
print 'reterr = '+reterr
pipe1.close()
pipe2.close()
pipe3.close()
C:\>python backup_proba.py
"C:\Program Files\7-Zip\7z.exe" a "C:\╘рщы ё яЁюсхырьш.7z" "C:\╘рщы ё яЁюсхырьш.txt" -mx3
retout =
reterr = "C:\Program" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
C:\>python backup_proba.py
"C:\Programs\7-Zip\7z.exe" a "C:\╘рщы ё яЁюсхырьш.7z" "C:\╘рщы ё яЁюсхырьш.txt"
-mx3
retout =
reterr = Синтаксическая ошибка в имени файла, имени папки или метке тома.
В данный момент, конечно же, поступил простейшим образом - закинул архиватор в каталог без пробелов в пути и запускаю без кавычек, но хотелось бы знать, решаема ли проблема в общем случае.
Использую python 2.5