2013-08-14 4 views
0

Я провожу несколько часов, написав небольшой скрипт. В основном, он создает новый текстовый файл и заполняет его любым. Я застегнул текстовый файл - using zipfile-- и вот где моя проблема.Python: системная команда

Я хочу, чтобы запустить системную команду Windows:

copy /b "imgFile.jpg" + "zipFile.zip" newImage.jpg Чтобы объединить изображения "imgFile.jpg" и молния "zipFile.zip".

Итак:

os.system("copy /b \"imgFile.jpg\" + \"zipFile.zip\" newImage.jpg")

Когда я бегу мой сценарий, все, кажется, идет хорошо. Но когда это будет сделано, и я пытаюсь извлечь файл в «newImage.jpg», это дает мне:

The archive is either in unknown format or damaged

Это происходит только при запуске системной команды внутри сценария. Он отлично работает, когда я использую оболочку. Это даже работает, если я использую отдельный скрипт.

Я дважды проверил свой почтовый файл. Все в хорошей форме. Есть ли что-то, что я делаю неправильно? Что-то я не вижу?

ответ

1

Вы пробовали использовать затвор?

import shutil 
shutil.copy(src, dst) 
0

Возможно, проблема связана с тем, как Python передает аргументы команде оболочки. Попробуйте использовать subprocess.call. Этот метод принимает аргументы в виде массива и передает их таким образом:

import subprocess 
subprocess.call(["copy", "/b", '"imgFile.jpg" + "zipFile.zip"', "newImage.jpg"]) 
Смежные вопросы