Python:系统命令

时间:2013-08-14 08:27:26

标签: python windows command system os.system

我花了几个小时写一个小脚本。 基本上它的作用是创建一个新的文本文件并用任何东西填充它。 我压缩文本文件 - 使用zipfile--这就是我的问题所在。

我想运行Windows系统命令:

copy /b "imgFile.jpg" + "zipFile.zip" newImage.jpg 合并图像“imgFile.jpg”和zip“zipFile.zip”。

所以:

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

当我运行我的脚本时,一切似乎都没问题。 但是当它完成并且我尝试提取'newImage.jpg'文件时,它给了我:

The archive is either in unknown format or damaged

只有在脚本中运行系统命令时才会发生这种情况。 我使用shell时工作正常。如果我使用单独的脚本,它甚至可以工作。

我已经仔细检查了我的zip文件。一切都很好。 有什么我做错了吗?我没有看到的东西?

2 个答案:

答案 0 :(得分:1)

您是否尝试过使用shutil?

import shutil
shutil.copy(src, dst)

答案 1 :(得分:0)

Python将参数传递给shell命令的方式可能存在问题。尝试使用subprocess.call。此方法将参数作为数组并将其传递给命令:

import subprocess
subprocess.call(["copy", "/b", '"imgFile.jpg" + "zipFile.zip"', "newImage.jpg"])