【发布时间】:2017-10-18 01:28:13
【问题描述】:
我正在尝试对以下代码进行一些错误处理。
在 subprocess.Popen...... 行中,如果 shell=True,如果给出了正确的文件名,脚本将加密,但是没有具有该名称的文件,不会打印错误代码,但确实如此在终端上显示为没有现有的文件/目录。
如果我运行 shell=False,则我无法加密文件,但会打印错误消息。
谁能解释我做错了什么?正如我在这里查看了不同的帖子,但我仍然不明白为什么它不起作用。我的猜测是它与脚本的 shell=True 部分有关。
SrcDIR ="/home/test/testsource/"
DstDIR ="/home/test/testdest/"
try:
subprocess.Popen(["openssl aes-128-cbc -salt -in " + SrcDIR + str(var1) + " -out " + DstDIR + "enc." + str() + " -k " + str(var2)], shell=True)
output3 = ("file " + str(var1) + "created")
print(output3)
except IOError as reason2:
errormsg = ("Error encrypting file due to: \n" + str(reason2))
print(errormsg)
【问题讨论】:
标签: python python-3.x subprocess popen ioerror