teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コード追記

2021/02/12 02:37

投稿

退会済みユーザー
answer CHANGED
@@ -1,1 +1,11 @@
1
- `make_archive()`がスレッドセーフでないのが原因。
1
+ `make_archive()`がスレッドセーフでないのが原因。
2
+ 代わりに、`subprocess.run()`内で`cd`, `zip`コマンドを呼び出すことで解決。
3
+
4
+ ```Python
5
+ def zip_and_remove_dir(path: pathlib.Path) -> None:
6
+ command = f"cd {str(path.parent)!r} && " \
7
+ f"zip -r {str(path.name) + '.zip'!r} {path.name!r}"
8
+ subprocess.run(command, shell=True, stdout=null)
9
+
10
+ shutil.rmtree(path)
11
+ ```