2015/11/18

PythonでPDFをさわってみる

ユーザーのハードウェアトラブルで現地に行くとすでに治っている状況を
1日で3度も遭遇したやまやまです。


第21回岡山Python勉強会(通称:おっPy)で発表した内容です。

今回は久々に元?主催者のたけとも(@soudai1025)参加のもと開催しました。
(ホント主催者に久々に会った気がする)

お題目は、PythonからPDFをさわると言った内容で話をしました。

今回の勉強会ネタを考えていた時に仕事で定型的(書式の決まったような)なPDFから
情報を取り出せると何となく仕事でラクができそうな気がしたから…と言った不順な
動機から調べたのが始まり

使ったモジュールは、

Pdfminer(http://www.unixuser.org/~euske/python/pdfminer/)

どうも日本人の方が作られているようで日本語も対応しているモジュール。
できることは、PDFファイルの中にある文字列をテキストファイルに出力したり、
埋め込まれた画像を抽出したりができたりするとのこと。


その時のスライド




インストールはサイトからダウンロードしてきたZipファイルを解凍し、
setup.pyをinstallコマンドで起動するだけ。

これで動くのだが日本語が文字化けするので日本語の環境設定が必要とのこと、
実はここがハマりどこでmacだとmakeコマンドcmapを作ればいいのだがwindowsでは
makeが使えないのでフォルダを作成後、コマンドを発行するがその際のパスを
絶対パスで設定する必要がある(環境によってインストールフォルダが違う場合に
変える必要がある)

powershellでやっていて、ここでエラーが出て気づくまでに結構かかった。
(エラーを読めば確かに指定先が無いと怒られていた…)

実際に触ってみるとコマンド自体も2つ(txt変換用モジュールとデバッグ用モジュール)
なのでかなりシンプル。
文章のみを抜き出したい時がさくっと使えるかと。
縦書きも対応しているようなのだが今回は確認までできていない(出力されるとどうなるんだ?)

所感としては、
ホントさくっとテキストを出力したいときは使えるかと思った。ただ細かいことを
やろうとするとPDFの構造について知識が無いと厳しいかと。

あとは、元のPDFがどういった形で作られているかによりできる/できないことが別れる
ところが大きいのではないかな(スキャナでスキャンしたPDFは、画像なので当然textの
抽出ができないとか)

といったところで今回はここまで。
次回は、なんのネタで話をしようかなと思っているやまやまでした。

2015/10/01

PythonでExcelを動かす

ブログ各の久しぶりのやまやまです。

今回で20回目の岡山Python勉強会(通称:おっPy)で発表した内容です。

PythonからExcelをさわると言った内容で話をしました。
VBAでなんかしようと思うと結構、ググることは多くて別の方法はないかと
思ったのがことの始まりです。(完全に俺得な内容ではありますが…)


その時のスライド


Pythonでexcel from Keigo Yamate


個人的に思ったのは、PowershellからPythonを呼び出してセルに直接書き込んだりできるので結構使いドコロはありそうな感じ。

ハマりどころは、Windowsで使うにはwin32apiを使っているのでその辺りの設定かと。

勉強会の中で話に出たが処理を分離できればソースのバージョン管理ができるのではないか?との意見がでたがたしかにそれはアリかも。

まあ、このあたりの話は、別の機会に書こうかとは思いますが。

そういえば、2015年11月22日(日曜)にPyCon mini Hiroshimaが開催されます良かったら参加してみてはどうでしょう。






2015/01/26

PythonでWebdriverを使ってみる

やまやまです。

ひさびさの更新ですが今回も勉強会で岡山Python勉強会(通称:おっPy)発表したので報告します。

今回は、すつーか0x0a0x0dさんからのリクエストでWebdriverについてまとめてみました。

その時のスライドがこれ





実際に触ってみた感想として、


  • webで処理を自動化するには便利
  • Selemium IDEで取得するタグを調べながらできるのはラク
  • Windowsで日本語を扱うのが…(使うエディタにもよるが)
  • IEは…


  • まあ、操作する際のテストを管理することを考えるとテストファイルを項目ごとに分けたり、Gitで履歴管理したりもできるのでいいかと。

    でも、なんでSelenium IDEからテストスイートをエクスポートする際にPythonは、ないんだろ?(C#は、あるのに…)

    2014/11/18

    Pythonのユニットテストについて調べた

    最近、ブログさぼりっぱなしのやまやまです。

    先日、岡山Python勉強会(通称:おっPy)で久々に発表したので報告します。

    今回は、Pythonのユニットテストについて調べた結果をまとめてみた。
    (かなりやっつけ感は否めないですが…)





    使って見て思ったのは、

  • 最初に体系的に学びながらテストするのならunittest



  • unittestのもっと簡潔に書いていくのと細かくテストの粒度を指定してテストしたいならならnose



  • ドキュメントをしっかり書いて整合性を取るために使うならdoctest




  • いつもはメインでC#を使っているのでChainigAsssertion使ってたりすると比較的noseがわかりやすかった。

    今回はSubllime Textでライブコーディングを交えてやったが、テストファーストでやるにはやはりIDEを使うべきなのかと思ったりしたが実コード→テストコードの早いサイクルで回すのであれば、Subllime Textで十分かも…

    かなり今回の資料はやっつけ感が満載なので過不足がある分については、ご勘弁ください。


    そういえば、Visual Studio Community 2013も出たことだし、Python Tools for Visual Studioも2.1リリースされたし使って見ようかな。

    2014/07/22

    OITECでPython Tools for Visual Studioについて発表した。



    お久しぶりです。
    最近、全くもってブログの更新ができてないやまやまです。

    ブログネタは、たまっているがなんやかんやで筆が進みませんでしたが久々の更新です。

    今回は、私がお手伝いしているOkayama Engineers Community(通称:OITEC)でお話
    したので久々にアウトプットしなきゃと思い書きました。

    Okayama IT Engineers Community 第19回勉強会





    今回のネタは、Python Tools for Visual Studio(通称:PTVS)です。
    簡単に説明すると読んで字のごとし、Visual Studioで動くPythonです。

    OITECで発表した2.1Beta2は、

    • Express版でも動く
    • Flask/Bottle/Flaskが動く

    ここがポイントだったりします。(今までは、Pro以上でしかも、フレームワークに対応してなかった。)

    スライドにも書いたんですが、

    • インテリセンスが効くがもう少しかな。(snippetでなんとかなるかも)
    • 黒い画面は最小限でできるとこはイイ。

    今の状態だと、私はSublime Textで作るほうが気持ちよく作れる気がしますが
    まあ、ベータなのでこれからの改良によって要期待です。

    OITECとしての発表は初めてだったのでバタバタしてしまったのが今回の反省点。
    もう少し練習しときゃ良かった。
    (夏休みの宿題といっしょで直前にならないとやら無いタイプなもんで…ダメですね。)


    次回は、もう少しうまくできるようになんやかんや、前倒しにしたいと思いました。
    そもそも次回があるのかと…

    あと、最後のプレゼント大会で「はじめてのTeam Foundation Server」をいただきました。


    この本は。TFSUGの清水さんからコミュニティにいただいたそうです。

    実はこの本、広島の勉強会でもらい損ねた本で、買おうか迷っていたものでした。(清水さんほんとありがとうございます。)

    また、機会があればブログに書こうと思いますので宜しくお願いします。

    しかし、今年はプレゼント大会で何かもらうことが多い。(今年に入って勉強会で書籍をもらうのは2回目)

    宝くじでも買ったら当たるんじゃないかと本気で思ったりしてますよ、ハイ。









    久々の勉強会での発表でガクブルでしたが、今後も機会があれば発表していきたいと思います。
    また、できるだけ外部へのアウトプットしていこうと思っていますので生温かく見守ってください。

    2013/12/26

    第9回 岡山Python勉強会でsphinxで話した。

    全く更新してなかったが、色んな所から言われたこともあり久々の更新。


    実は、今年のはじめから色んな人からの応援もあり、岡山Python勉強会(通称:おっPy)をはじめた。

    なんとか11月でひと通り、チュートリアルも終わったのでなんか今年の最後にいいネタが無いかとみんなで話をしたところ、Sphinxの使い方をやろうということで発表をした。


    基本的な内容は、チュートリアルを元にスライドで説明した。

    一連の説明をした後に、ハンズオンを行ないみんなでドキュメントを作ってみた。

    オフラインで参加できなかった人用に、googleハングアウトを使いやってみた。
    スライドの途中で音声が途切れてしまい、スライドだけ進むトラブルもあったが何とか進めることができた。

    実は、すでに社内の資料などでSphinxは使っていたが今回、スライド作成を行うことで忘れてた設定項目を再度確認できて良かったと思う。

    来年も引き続き、勉強会をおこなうので大都会の人は良かったら参加してみてください。





    さいごに、実は勉強会での発表が初めてだったことはナイショ…




    2012/11/21

    Sublime text 2でSphinxを使う

    最近、評判のSublime Text 2とSphinxを使ってドキュメントを書いて見たのでおぼえがきの意味も含めメモ

    事前準備



    Sublime text 2のインストール


    公式サイト(http://www.sublimetext.com/)から該当のOSのパッケージをダウンロードし、インストールを行う。

    インストールが完了後、定番のPackage Contorolを入れる。

    インストールからPackage Contorolを入れるまでの手順は以下のサイトを参考に行なった。

    Sublime Text 2がプログラミング人生を変えるかも知れない
     http://tak0303.github.com/2012/09/25/how-to-use-sublime.html


    Sphinxのインストール



    公式サイト(http://sphinx-users.jp/)のチュートリアルを元に

     ・Python3.2のインストール(お好みのバージョンでOK)
     ・Setuptool(Easy_Install)をインストール
     ・Easy_InstallからSphinxをインストール

    一応、動作確認の為、コマンドプロンプトからsphinx-quickstartを実行



    正常に動作すれば準備完了。

    Sublime text 2のパッケージインストール


    sphinxをSublime text 2で動かす為にパッケージのインストール入れたパッケージが

     ・Restructured Text (RST) Snippets
     ・Markdown Preview

    最低限必要なパッケージは、これぐらい。ぶっちゃけ、なくても問題はない。

    build環境の構築


    さて、ここからが本題。
    build環境の為,メニューの中にある

    [Tools] - [Build System] - [New Build System...]



    を選択し、開いたファイルに以下のコードを入れてファイルを保存する。(ファイル名は、sphinx.sublime-buildとかにする。)




    これで準備完了なのでドキュメントを書いたら、さきほどのメニュー内に新たにsphinxの項目が追加されているので

    [Tools] - [Build System] - [sphinx]

    を選んだ後に、ctrl + b でbuildが開始される。

    ビルド前に確認したい時は、Markdown Previewを使い確認をする。
    (PreferrencesのKey Bindings-userに起動用のショートカットコマンドを登録しておくと便利)

    あとはお好みでGitで管理をするなりすればOK!