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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

Q&A

0回答

1358閲覧

PDFの特定ページのみを回転させたい

hamani

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

0グッド

0クリップ

投稿2020/07/01 04:55

編集2022/01/12 10:55

前提・実現したいこと

フォルダ内に複数あるPDFファイルを取得して2ページ目のみを180度回転させて上書き保存をしたいのですが
FileNotFoundErrorが出てしまいます。

発生している問題・エラーメッセージ

Traceback (most recent call last): File "//ディレクトリ/test3.py", line 29, in <module> pdf_roll(file_list, 180) File "//ディレクトリ/test3.py", line 19, in pdf_roll file = PyPDF2.PdfFileReader(open(str(p_file), 'rb')) FileNotFoundError: [Errno 2] No such file or directory: "[]"

該当のソースコード

import os import PyPDF2 import glob file_list = glob.glob('/ディレクトリ/*') for file in os.listdir("."): # ファイルかどうか is_file = os.path.isfile(file) # このpyファイル自身でないか not_py_file = os.path.basename(__file__) != file if is_file and not_py_file: file_list.append([file]) def pdf_roll(p_file, p_angle): file = PyPDF2.PdfFileReader(open(str(p_file), 'rb')) file_output = PyPDF2.PdfFileWriter() for page_num in range(file.numPages): page = file.getPage(page_num) page.rotateClockwise(180) file_output.addPage(page) with open(p_file + '_roll.pdf', 'wb') as f: file_output.write(f) pdf_roll(file_list, 180)

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

Python3.8.3を使用しています。

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

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

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

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

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

Lhankor_Mhy

2020/07/01 05:16

p_file にリストが入っているからではありませんか? また、file_list が空なのは、それでいいのですか?
hamani

2020/07/01 05:52

すいませんはじめたての初心者なので初歩的なご質問なのですが、p_fileにリストが入っているというのはどういう事でしょうか? file_list部分を更新しました。
Lhankor_Mhy

2020/07/01 05:56

>p_fileにリストが入っているというのはどういう事でしょうか? 質問の編集前は、file_list = [] だったので、リストが入っていますよね? --- また、質問の編集に伴い、実際のエラーメッセージはご提示のものと異なっているのではありませんか?
Lhankor_Mhy

2020/07/01 06:21

ああ、for ループで内容を変更しているのですね、見逃していました。 いずれにせよ、リストであることは間違いないと思うのですが、どのような不明点がありますか? リストが入っていないとお考えであれば、何が入っていると想定されているのですか?
hamani

2020/07/01 06:24 編集

リストデータ自体は同ディレクトリに入っておらず、ファイルを取得したかったのでfile_listとしています。 エラーメッセージ自体は変わらないでのすが、その後に絶対パスでファイル名が出てきています。
hamani

2020/07/01 06:29

forループの部分で同ディレクトリにあるデータがファイルなのかこの.pyファイルかを判断して取得したいと考えており、ネットで調べて見つけたスクリプトを元に自分で加工しておりましたのでおかしい部分が多々ある状況です。 拙い説明で申し訳ありません。
Lhankor_Mhy

2020/07/01 06:31

>forループの部分で同ディレクトリにあるデータがファイルなのかこの.pyファイルかを判断して取得したいと考えており はい、それは理解しました。 「p_file にリストが入っているから」については、ご納得いただけた、ということでよろしいですか?
hamani

2020/07/01 06:38

すいません、そこの部分がまだ理解出来ておりません。。
Lhankor_Mhy

2020/07/01 06:40

わかりました。 繰り返しになってしまい恐縮なのですが、リストではないとすると、何が入っている想定ですか?
hamani

2020/07/01 06:44

PDFのファイルを想定しています。
Lhankor_Mhy

2020/07/01 06:51

print( p_file ) などとしてみれば、ファイル名のリストであるのか、それとも私が間違っていてhamaniさんのおっしゃるようにファイルであるのかがわかると思いますので、確認してみてはいかがですか?
hamani

2020/07/01 07:07

import os import PyPDF2 import glob file_list = glob.glob('//ディレクトリ/*') for file in os.listdir("."): # ファイルかどうか is_file = os.path.isfile(file) # このpyファイル自身でないか not_py_file = os.path.basename(__file__) != file if is_file and not_py_file: file_list.append([file]) def pdf_roll(p_file, p_angle): file = PyPDF2.PdfFileReader(open(str(p_file), 'rb')) file_output = PyPDF2.PdfFileWriter() for page_num in range(file.numPages): page = file.getPage(page_num) page.rotateClockwise(180) file_output.addPage(page) with open(p_file + '_roll.pdf', 'wb') as f: file_output.write(f) print( p_file ) Traceback (most recent call last): File "//test3.py", line 26, in <module> print( p_file ) NameError: name 'p_file' is not defined とエラーが出てきました。
Lhankor_Mhy

2020/07/01 08:24

インデントが消えているのでわかりませんが、関数の外に書いてあるのではありませんか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問