回答編集履歴

1

コード追記

2021/02/12 02:37

投稿

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