ファイルを圧縮するために自動化ツールで使用する python スクリプトを作成しました。問題は、ディレクトリ全体(つまり、すべてのフォルダー)を圧縮すると、ファイルだけではなく、ファイルが圧縮されることです。したがって、test1 と test2 の 2 つのファイルを引数としてデスクトップでこれを実行すると、出力は "Currentdate&time.zip" になり、抽出すると出力されます。/Users/dean/desktop/test1 /Users/dean/desktop/test2 のようになります
そのため、ファイルだけが必要な場合は、これらすべてのフォルダーを圧縮します。助けてください
このコードは、端末から実行するとうまく機能しますが、自動化では機能しません(以下の私のコメント)。このコードを自動化のサービスとして使用します。したがって、1つのファイルは正常に機能します。複数のファイルはありません ところで 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)