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

回答編集履歴

2

質問文の追記に対して回答を追加しました

2021/11/18 07:28

投稿

AkiFuku
AkiFuku

スコア129

answer CHANGED
@@ -7,4 +7,10 @@
7
7
  ```
8
8
 
9
9
  参考:「python パス ファイル名のみ」などで検索するとこういった記事が見つかるかと思います。
10
- https://note.nkmk.me/python-os-basename-dirname-split-splitext/
10
+ https://note.nkmk.me/python-os-basename-dirname-split-splitext/
11
+
12
+ ----
13
+ 【追記】
14
+ `merger = PyPDF2.PdfFileMerger(strict=False)`
15
+ をfor文の前ではなく、for文の中で宣言してみてください。
16
+ for文の中でこれをClose()しているため、二度目ではClose()済みのmergerで実行しようとしてエラーになっているのだと思われます、

1

パスの作り方を追記しました

2021/11/18 07:28

投稿

AkiFuku
AkiFuku

スコア129

answer CHANGED
@@ -1,6 +1,10 @@
1
1
  ファイルが一つの場合はうまくいって、`merger.write(r'C:\PDF挿入\挿入後****.pdf')`だと上手くいかないというのは、このファイル名の指定の方法が良くないのではと思います。
2
2
  `os.path.basename(i)`
3
- でパスの中からファイル名のみが取り出せますので、これをもとに保存先のパスを作成し、保存を実行すれば良さそうな気がします。
3
+ でパスの中からファイル名のみが取り出せますので、これをもとに以下のように保存先のパスを作成し、保存を実行すれば良さそうな気がします。
4
+ ```python
5
+ newname = r'C:\PDF挿入\挿入後' + "/" + os.path.basename(i)
6
+ merger.write(newname)
7
+ ```
4
8
 
5
9
  参考:「python パス ファイル名のみ」などで検索するとこういった記事が見つかるかと思います。
6
10
  https://note.nkmk.me/python-os-basename-dirname-split-splitext/