質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

637閲覧

pythonで画像をPDFにしたい

dokidoki_hamuo

総合スコア38

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/09/17 08:34

画像をPDF化しようとしたが失敗する。

いつもお世話になっております。
初心者の質問にもご対応できる方どうぞよろしくお願いいたします。

フォルダの中の画像をPDFにするコードを作成していましたが、失敗してしまいます。
原因がお分かりの方、解説していただければ幸いです。

https://qiita.com/daikan_murata/items/e1c38db8b41d141f12d8
↑こちらのサイトを主に参考にしました。

教えてほしいこと

エラーの原因の解説をお願い致します。

エラーの原因は「作成しようとしてるPDFがないよー」ということですか??
見当違いでしたらすみません。

エラー

FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\78910\Desktop\作業\pdf\B2ポスター0731ol.pdf\wb'

作成したもの

python

1import os 2import img2pdf 3from PIL import Image 4 5#画像がはいっているパス 6mypath =(r"C:\Users\123456\Desktop\作業\photo") 7#保存先 8savepath =(r"C:\Users\78910\Desktop\作業\pdf") 9 10os.chdir(mypath) 11 12mydata =[] 13#mydataにファイルの名前をリスト化して格納 14for filename in os.listdir('.'): 15 if filename.endswith('.jpg'): 16 mydata.append(filename) 17 18for filename in mydata: 19 20# 保存するPDFファイル名 21 myname = (filename.replace('.jpg','.pdf')) 22#バイナリ形式でファイルに書き込む 23 with open(os.path.join(savepath,myname,'wb'))as files: 24 files.write(img2pdf.convert([Image.open(os.path.join(mypath,filename))]))

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

with open(os.path.join(savepath,myname,'wb'))as files:だとwbもjoin関数の引数になってしまっています。
with open(os.path.join(savepath,myname),'wb' )as files:ではないでしょうか。

投稿2020/09/17 08:43

can110

総合スコア38262

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dokidoki_hamuo

2020/09/17 08:48

ご回答ありがとうございます。 ほんとですね!あー、気づいてませんでした。。。 おかげさまで作成できたのですが、PDFのファイルが破損している可能性があります、と出てしまいました。こちらは、単純に現在使用しているPDFの何かがうまくいかないということでしょうか? 以前PyPDF2でPDFを合体しようとした時に、重い画像があると同じ現象が起きました。
can110

2020/09/17 08:52

img2pdfは使ったことがないのでちょっと分かりませんが、ライブラリによって使い方は異なるので まずは公式ドキュメントなりのサンプルコードで動作するかを確認するとよいかと思います。
dokidoki_hamuo

2020/09/17 08:58

なるほど!! サンプルコードをさっそくさがしてこようと思います。 BAにさせて頂きます。
guest

0

エラーの内容をちゃんと見ればわかると思いますが、openコマンドの引数のところで、ファイル名の生成のところとまじってしまっているのが原因でしょう。

python

1with open(os.path.join(savepath,myname,'wb'))as files:

これだと、本来openの引数であるべき、'wb' まで、パスとして結合されちゃいます。

こうでしょう。

python

1with open(os.path.join(savepath,myname),'wb')as files:

僕なか、os.path.join()は外でやりますけどね。

投稿2020/09/17 08:43

TakaiY

総合スコア12745

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dokidoki_hamuo

2020/09/17 08:56

ご回答ありがとうございます。おっしゃっている通りのミスでした。 外でやったほうが、単純ミスがなくなりそうですね。 アドバイスありがとうございます。
guest

0

FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\78910\Desktop\作業\pdf\B2ポスター0731ol.pdf\wb'

そのフォルダがないと言ってますが、そのフォルダは存在してるんでしょうか

投稿2020/09/17 08:38

編集2020/09/17 08:39
y_waiwai

総合スコア87749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dokidoki_hamuo

2020/09/17 08:39

ご回答ありがとうございます。 存在しています。 フォルダのパスは間違っていないと思います。 そういう意味のエラーだったんですね。
dokidoki_hamuo

2020/09/17 08:41

もしかして間違っているかもしれないと思い、別の既存のフォルダパスをいれてみましたがだめでした。
y_waiwai

2020/09/17 08:42

C:\Users\78910\Desktop\作業\pdf\B2ポスター0731ol.pdf というフォルダに、wbと言う名前のファイルをp作ろうとしてるようですが、 このフォルダが存在しないと、ファイルの作成が失敗します 繰り返しますが、このフォルダは存在してるんでしょうか
dokidoki_hamuo

2020/09/17 08:51

すみません 上記の方が答えてくれた with open(os.path.join(savepath,myname),'wb' )as files: でした。 非常に初歩的なミスでした。 >>>C:\Users\78910\Desktop\作業\pdf\B2ポスター0731ol.pdf というフォルダに、wbと言う名前のファイルをp作ろうとしてるようですが そういうことをやろうとしているコードになっていましたね。 解説ありがとうございます。
dokidoki_hamuo

2020/09/17 08:55

気付かせようとしてくださったご指摘、ありがとうございます!! もし何かありましたら、ご教授いただければ幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問