回答編集履歴

1

追記

2020/10/19 03:05

投稿

nto
nto

スコア1438

test CHANGED
@@ -35,3 +35,65 @@
35
35
  f1.write(img2pdf.convert([file for file in files]))
36
36
 
37
37
  ```
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+ ### 追記 フォルダ内にある更なる階層のフォルダを対象にする方法について
46
+
47
+ 一見複雑そうに見えますが、先日回答した処理を、更にフォルダ内でも行っているだけです。
48
+
49
+ 以下では更にもう1階層分のフォルダを探して~という風にコードを書きましたが
50
+
51
+ この先あと何階層フォルダがあるのかわからないといった場合にはwhile文を書いて
52
+
53
+ 指定したフォルダ内に更にフォルダがあるか・ないかを判定すれば良いでしょう。
54
+
55
+
56
+
57
+ ```
58
+
59
+ import img2pdf
60
+
61
+ import os
62
+
63
+ import glob
64
+
65
+
66
+
67
+ cur_dir = os.getcwd() # カレントディレクトリ取得
68
+
69
+ dirs = os.listdir(cur_dir) # 指定ディレクトリ内に存在するファイル、フォルダをリスト化
70
+
71
+
72
+
73
+ for f in dirs:
74
+
75
+ # 対象がフォルダである場合にTrueが返り、if文内が実行される
76
+
77
+ if os.path.isdir(os.path.join(cur_dir, f)):
78
+
79
+ for sf in os.listdir(os.path.join(cur_dir,f)):
80
+
81
+ if os.path.isdir(os.path.join(cur_dir, f, sf)):
82
+
83
+ files = glob.glob(os.path.join(cur_dir, f, sf, r"*.jpg"))
84
+
85
+ with open(os.path.join(cur_dir, f, sf, f"{sf}.pdf"), "wb") as f1:
86
+
87
+ f1.write(img2pdf.convert([file for file in files]))
88
+
89
+
90
+
91
+ files = glob.glob(os.path.join(cur_dir, f, r"*.jpg"))
92
+
93
+ with open(os.path.join(cur_dir, f, f"{f}.pdf"), "wb") as f1:
94
+
95
+ f1.write(img2pdf.convert([file for file in files]))
96
+
97
+
98
+
99
+ ```