我已经写了一个python脚本,我使用automator来压缩文件。问题是,当我压缩他们整个目录(意思是所有的文件夹)+文件被压缩,而不仅仅是文件本身。所以,如果我在桌面上运行这两个文件作为参数,测试1和测试2输出将是“当前日期& time.zip”,当我提取它。它会看起来像这样/ Users/dean/desktop/test1 /Users/dean/desktop/test2Python压缩整个目录而不是唯一的文件
因此,当所有我想要的文件都是压缩所有这些文件夹。请帮助
此代码从终端运行时运行greate,但不在automator(我的评论如下)我使用此代码作为automator中的服务。所以一个文件工作正常。多个文件不BTW LEN(sys.argv中)> 3确实应该LEN(sys.argv中)> 1
OSX_username = getpass.getuser()
now = datetime.datetime.today()
dir = os.getcwd()
zip_dir = dir + "/" + now.strftime("%Y-%m-%d %H:%M") + '.zip'
dst_dir = "/Users/" + OSX_username + "/Desktop"
zf = zipfile.ZipFile(now.strftime("%Y-%m-%d %H:%M") + '.zip', mode='w')
if len(sys.argv) > 3: #app 2 service 3
for f in sys.argv[1:]:
try:
zf.write(f)
finally:
print ''
zf.close()
src = zip_dir
last_part = os.path.basename(src)
shutil.move(src, dst_dir)
你可以添加一个示例用法吗?从检查你的代码,我会猜想这是解析参数的问题,但我可能是完全错误的... – mac