Python

2017年5月12日 (金)

Python: ファイル転送スクリプトを更新した PyMyFTP V001_0

2017-05-12(金)晴れ

 PyMyFTP は、画像ファイルなどをFTPサイトに転送するスクリプトです。使用法としてはPyResizeJpgなどでリサイズした写真ファイルを、自分のFTPサーバにアップすることを想定しています。これは、旅行先からブログ更新のため、写真ファイルを簡単に転送することを目的にしています。fubuki などの、他のスクリプトと連動して使用する、シリーズものの一つです。
  参考: Pythonスクリプト雑記 「fubuki で WEB 作成

 先日からスクリプトを更新している、タイムアウト検出と終了対策をいれて更新しました。まあ、今までも特に問題は出ていないのですが、他のスクリプトと合わせて対策しておくことにしました。

■:変更概要
 WEBデータ待ちのまま終了できなくなることがあったので、タイマ監視で強制終了させる処理を入れました。なお、以前のバージョンでも、Nokia E7-00以外では問題は出ていません。合わせて、Python 2.0.0 などの対策を入れました。
  ・WEBデータ取得時のタイムアウト監視を入れた。
  ・Python 2.0.0 での対策を入れた。(setdefaultencoding)
  ・E:\Python\Libのパス挿入が複数にならないよう改良した。
  ・スクリプトの構造を綺麗にする改造を行った。

モジュールは、「Python スクリプト 雑記」の
  「6.fubuki で WEB 作成」に載せました。
 

| | コメント (0) | トラックバック (0)

2017年5月11日 (木)

Python: 太陽と月の出入り時刻、月齢表示のスクリプトを更新した PySunMoon V002_0

2017-05-11(木)晴れ

 国立天文台のWEBサイトからデータを読んで太陽や月の出入りの時刻、南中の時刻、月齢などを数字で表示するスクリプトを更新しました。先日から更新しているスクリプトと同じで、WEBアクセスのタイムアウト検出がメインです。その他、Python 2.0.0対応を入れました。

■変更概要
  WEBデータ待ちのまま終了できなくなることがあったので、タイマ監視で強制終了させる処理を入れました。なお、以前のバージョンでも、Nokia E7-00以外では問題は出ていません。合わせて、Python 2.0.0 などの対策を入れました。
 ・WEBデータ取得時のタイムアウト監視を入れた。
 ・Python 2.0.0 での対策を入れた。(setdefaultencoding、btsocket)
 ・E:\Python\Libのパス挿入が複数にならないよう改良した。

作成時の記事の画像を貼り付けてみました。
Ssce0709a
 日の出、日の入りを見るより、月齢を見るのに重宝しています。


モジュールは例によって「Python スクリプト 雑記」に載せました。
  「44.太陽、月の出入り時刻を見る PySunMoon
 

 

| | コメント (0) | トラックバック (0)

2017年5月10日 (水)

Python: WEB小説のデータ取得スクリプト PyBookGet 更新 V106_0

2017-05-10(水)雨、曇り

 「小説家になろう」サイトから、WEB小説のテキストを纏めてダウンロードするスクリプト「PyBookGet」を更新しました。これも、自分で使っているからと変更を行い、忘れないように記事にしておくものです。変更内容は、概ね一昨日のPyStnシリーズの変更と同じで、メインはWEBアクセス時のタイムアウト監視です。改造は四月に終わっていたのですが、ドキュメントを修正するのを面倒がっていて保留になっていました。記述内容を忘れかけてきたので、慌てて記述しました。

変更概要
  WEBデータ待ちのまま終了できなくなることがあったので、タイマ監視で強制終了させる処理を入れました。なお、以前のバージョンでも、Nokia E7-00以外では問題は出ていません。
  合わせて、Python 2.0.0 などの対策、ダウンロード途中で中止出来るようにする等の対策を入れました。
  ・WEBデータ取得時のタイムアウト監視を入れた。
  ・Python 2.0.0 での対策を入れた。(setdefaultencoding、btsocket)
  ・E:\Python\Libのパス挿入が複数にならないよう改良した。
  ・ダウンロード途中で中断できるよう Quit メニューを設けた。
  ・ダウンロード途中でも終了できるようにした。

-----------------------------------------------
モジュール
   「PyBookGet_106_0.zip」   
-----------------------------------------------
 


| | コメント (0) | トラックバック (0)

2017年5月 8日 (月)

Python: PyStnシリーズのスクリプトを更新した

2017-05-08(月)晴れ

 相変わらず、「相変わらずの携帯電話機種=Nokia携帯電話」のためにPythonスクリプトを弄っています。まあ、自分で使っているから仕方がないのですが。
 PyStnシリーズは、WEBサイトからデータを取得して表示するもののシリーズです。天気予報とか花粉予報、株価、ニュース速報などです。
 今までは特に問題無かったのですが、E7-00で使ったときに、何回かWEBからのデータ待ちになったまま、キー入力も受け付けなくなり、終了も出来ず困ったことがありました。電波状態が微妙なときだったようです。まあ、スクリプトのコーディングが悪かったですね。待ちの状態でもキーを受け付けられるような処理構造にすべきだったのですが、今まで問題がなかったことや、今までの機種はキーもあり強制終了できるので気がつきませんでした。今までの機種は通話終了(切断)キーでソフトを強制終了できるのですが、E7-00ではそれらもディスプレイ上のソフトキーなので、強制終了できず苦労することになります。バッテリーも内蔵だからバッテリー抜きも出来ないし、、。
 ということで、PyStnシリーズを纏めて更新しました。
 (1)PyStnWeather_J V_0_04_0
 (2)PyStnNews      V_0_04_0
 (3)PyStnNews2     V_0_05_0
 (4)PyStnCurrency  V_0_04_0
 (5)PyStnPollen    V_0_04_0


ドキュメントからの抜粋で、変更概要です。
  WEBデータ待ちのまま終了できなくなることがあったので、タイマ監視で強制終了させる処理を入れました。なお、以前のバージョンでも、Nokia E7-00以外では問題は出ていません。 合わせて、Python 2.0.0 などの対策を入れました。
 ・WEBデータ取得時のタイムアウト監視を入れた。
 ・終了時に終了報告ダイアログを出すようにした。
 ・Python 2.0.0 用の対策を入れた。
  (setdefaultencoding、btsocket)
 ・E:\Python\Libのパス挿入が複数にならないよう改良した。

 モジュールや交信の記事は例によって「Python スクリプト 雑記」のそれぞれの項に貼り付けました。
 
 とりあえず、PyStnシリーズは纏め終わりましたが、WEBアクセスするスクリプトは、まだまだあるんですよね。
 

| | コメント (0) | トラックバック (0)

2017年4月24日 (月)

Python:リストのスライドスクロールを有効にする対策をした

2017-04-24(月)曇り

 Nokia E7-00でのPythonスクリプトのテストの件で、残っていた対策の幾つかを実施しました。残っている対策は、前回の記事でリストアップしました。
 前回の記事「Nokia E7-00でのPythonスクリプトのテストを始めた その5

 今回の対策の項目は、リスト画面でのスライドスクロールを有効にする対策です。ここでスライドスクロールと言っている動作とは、リスト画面で指をスライドさせてリストをスクロールさせる動作です。今風の言い方で言うとスワイプですか?用語については、あまり良く知らないのですが、、。

 タッチ画面式の携帯電話(Nokia 5800XM やE7-00)では、OSや内蔵アプリではスライドスクロールは動作するのですが、Pythonで表示しているリストでの、指をスライドさせてのスクロールはうまく動きませんでした。Nokia 5800XMではバーチャルキーボードを導入していたので我慢していましたが、一応キーボードがあるE7-00にはバーチャルキーボードを導入したくなかったので対策を考えてみることにしたものです(バーチャルキーボードが動くかどうか不明だったし)。

 一応操作してみて、一つの事実が分かっています。それは、Pythonが制御している内部的なリストはスクロールしているらしいことです。

Scre000043a
 指をスライドさせても画面上のリストは変化しないのですが、その後、画面に指を振れてみると、その行だけ表示が変わって青く(選択された状態に)なります。その表示をみると番号が進んでいるからスクロールはされているようです。あちこち触ると上記画像のように、おかしな事になります。画面全体の表示が更新されていないからです。
 ということで、画面表示を更新すれば良いのではないかと考えました。余りよい手は思いつかなかったのですが、下記のように対策を入れてみました。

 ・10ミリ秒~50ミリ秒位のタイマをループさせて、タイムアウト毎に画面更新の命令
  を出すことにする。(appuifw.app.body = self.listbox_list)
 これで、とにかく画面更新をすると、画面上のリストをスクロールさせることが出来ました。ただ、機種(OS)やPythonのバージョンに寄って動作が違っています。とりあえずは、E7-00で使えればいいかなと考えました。

----- 機種(OS)やPythonのバージョンでの相違 -------------
     E7-00 (OS :Belle)
       Python 1.4.5  ○
       Python 2.0.0  -  (未テスト、多分大丈夫と期待)

     5800 XM (OS : S60 5th)
       Python 1.4.5  ×(スクロールしない) 注1
       Python 2.0.0  △(スクロールするが反応良くない)

 注1:appuifw2 を導入すると動作が変わるかもしれない
-------------------------------------------------------

Scre000044a_2 Scre000045a
 一つ制限事項が出てしまいました。スライドでのスクロールでは、左のように最後の項目でスクロールが止まりますが、実際はもう一つダミー行がないと、ここまで表示できないのです。右はカーソルキーで最後の行に移ったところです。最後にダミー行を入れています。この行をクリックしても何も動作しないようにはしていますが、、。一応、ここが項目の最後であること表示する行ということにしています。
 リストボックスを使ったスクリプトは多くあるのですが、全部対策する元気はないので、下記の3つを対策することにしました。

 PyMyShell は色々なスクリプトを起動するためのスクリプトですが、メニュー画面と同じようにキーボードを出さなくても良いようにしたかったので対策しました。

 PyFbuiutilは、ファイルやディレクトリ操作が必要なときに、色々なスクリプトがインポートして使うモジュールです。これが対策されていれば対策済みになるスクリプトが多いので対策しました。

 Filebrowser はその名の通りファイルブラウザ(ファイルマネージャ)ですが、これもファイルに対して色々なアプリを動作させるシェルみたいに使うことも多いので対策しました。

 ついでに、以前から分かっている、Python 2.0.0 での問題点も対策しました。

モジュールは例によって「Python スクリプト 雑記」の各々の項目のところに入れました。
 

| | コメント (0) | トラックバック (0)

2017年4月17日 (月)

Nokia E7-00でのPythonスクリプトのテストを始めた その5

2017-04-17(月)晴れ、のち雨

 暫く前から、もう少し手持ちのNokia E7-00を活用してみようと、メイン携帯で使っているPythonスクリプトをE7-00でテストしたり改造したりしてきました。
 前回の記事「Nokia E7-00でのPythonスクリプトのテストを始めた その4

 前回の記事までの問題点で対策してきたスクリプトについては、既に個別記事で書いてきました。既に5~6個のスクリプトを修正してきましたが、手を付け始めると色々と直したくなってきます。直さないと使えない内容から、とりあえずは問題ないけど、少し気になる内容とか色々です。

今まで修正した内容は以下のとおりでした。

(1)WEBデータを使用するスクリプトについて、サイトの変更に対応させたもの。
   これは対応させないと動かないので、仕方がないですね。
(2)フルスクリーン表示を使用しているものは、ソフトキーが表示されないのでメニュー操作や
   終了が出来ないので対策が必要だったもの。
(3)サムネイル画像を複数表示するスクリプトが、うまく動かなかったもの。
   これも、対策しないと使えない内容でした。
(4)E7-00の写真画像の縦横比が今までのカメラと違うので、リサイズ時に
   縦横比が変わらないように対策したもの。
(5)ブログ用記事作成スクリプトで画像指定時に、E7-00カメラの画像に縦横比に対応できるようにした。

 その後も色々検討していたら、まだまだ修正したい内容が出てきてしまいました。改造しないと困る内容から、”将来”のために改造しておきたい内容まで色々です。因みに、この携帯電話の使用に”将来”があるかどうかは、、、微妙なところですね。ま、使えなくなるまで使うことにします。

 これから対策したい内容は以下の通りです。

(1)リストを表示した画面のとき、指をスライドさせてスクロールさせたい。今風に言うとスワイプ?ですかね。
(2)Python2.0.0でも動くようにしておきたい。
(3)色々なスクリプトを連続使用しているときに、ライブラリ用ディレクトリのパスが
  どんどん肥大化してゆくのを防止する。
(4)WEBアクセス時にうまくデータを送受信できなくて、ずっと待ちになってしまい
   ハングアップしたようにみえることが発生した。このため、タイマ監視することにした。

 こんな内容で洗い出したら、最低でも10個も改造対象がリストアップされました。面倒だなと思う反面、スクリプトを弄るのが増えて楽しい面もあります。
 暖かくなってきたし、部屋で作業していても寒くないので、少しずつ改造する予定です。
 

| | コメント (0) | トラックバック (0)

2017年4月 8日 (土)

Python:サムネイル画像で一覧する PyMyViewer を更新した V003_0

2017-04-08(土)曇り/雨

 選択したフォルダ内の画像ファイルを、サムネイル画像で一覧するスクリプト  PyMyViewer を更新しました。これは、先日からやっているE7-00でのテストで動かなかったものを対策したものです。
 先日の記事「Nokia E7-00でのPythonスクリプトのテストを始めた その4

 画像ファイルをサムネイル画像の一覧で見るといえば、内蔵の「ギャラリー」に似ていますが、ギャラリーは全部のフォルダから画像ファイルを引っ張ってきますが、 PyMyViewer は選択したフォルダ内のファイルだけを対象とします。どちらが必要かは時と場合に寄りますので、動くようにしておくことにしました。

 動かない大きな理由は、以前対策したPyResizeJpgと同じく、graphicsモジュールを使うときに redraw callback 処理を用意してないせいでしょう。Nokia 5800XMのときは動いたのですが、新しいE7-00の方は、その辺はきっちりとしているのかもしれません。

(1)img.rectangle を使う方式
  これは最初、 img.rectangleで1枚のカンバス上に、リサイズした写真で塗りつぶした四角(rectangle)を配置して、 redraw callback 処理も含めて描画時には、そのカンバスを出力するようにしたものです。これだと、グローバル変数にした1枚のカンバスを持ち回りするだけで済むからです。

-----これを画像枚数分ループさせてから出力する--------
img.rectangle(((pos_x,pos_y), (pos_x1,pos_y1)), width=1,
  outline=(255,255,255), pattern=self.disp_img_list[i])
---------------------------------------------------

Scre000034a

 結果の画像です。一見、うまくいったかと喜んだのですが駄目でした。各々の画像を見ると分かりますが、縦や横に切り取って左右、あるいは上下に入れ換えたような画像になっています。縦、横に不自然な線で色が変わっているところが切り口です。どうやっても駄目で、私の知識、技術では分かりませんでした。

(2)今までの個別blit方式
  今までの方式(画像ファイルを個別にblitで画面に出力する方式)で、処理をきちんと作成しました。

-----これを画像枚数分ループさせる------------------------
self.canvas.blit(self.disp_img_list[i], target=(pos_x,pos_y), \
                                 source=((0,0), self.disp_img_list[i].size))
--------------------------------------------------------

Scre000042b Scre000041b

 左の画像のとおりうまくいきました。(1)の画像と同じ画像があるので比較すると、(1)の画像のおかしなところが分かります。合わせて、画像処理中の画面を右のように変更しました。今までは「画像処理中」だけ表示していましたが、処理枚数とファイル名を表示するようにしました。

(3)QVGA画面(240*320)機種への対応
  今まではNokia 5800XMやE7-00などの、360*640ピクセルの画面の機種を対象としていました。上下左右の幅の数値を決めうちしていました。なので、QVGA画面の機種でも動きはするものの、表示される画像がはみ出したりしてしまった訳です。今回の改造のついでに、QVGA画面のサイズ数値にも対応させました。

Ssce0725a(E52での表示)
 

 これで、やっと対策できました。(1)の方式で随分と足踏みしていましたが、何とかなって、ほっとしました。

例によって、「Pythonスクリプト雑記」 の
        「13. 5800 XM 用画像一覧アプリ PyMyViewer」を更新しました。
モジュールもそちらに載せました。
 

| | コメント (0) | トラックバック (0)

2017年4月 6日 (木)

Python: fubuki と fubuki2htm を更新した。V.002_0

2017-04-06(木)晴れ、のち曇り/小雨

 先日から、Nokia E7-00 携帯電話での使用について、Pythonスクリプトをなおしたりしています。今度は、fubuki と fubuki2htm というスクリプトを更新しました。この2つは他の方の作品ですが、便利なので使わせていただいます。ですが、自分の用途用に修正して使用させていただいています。
 fubuki はツリー状のテキストを作成することが出来るアプリです。
 fubuki2htm は fubuki のドキュメントをhtmlテキストに変換するアプリです。
これらを使って、ブログ投稿用の文章を作成しています。

 自分のもともとの記事「fubuki でWEB 作成 その1
 fubukiのサイトはこちら
 fubuki2htm のNAT33さんのサイト「Miscellaneous notes 携帯電話でサイト作成

 これらでブログ用のテキストを作成するときにフォト画像を挿入できるように改造して使用しているのですが、その大きさの指定が 4:3 の写真の指定値しか入れてありませんでした。元々がQVGA画面の携帯電話しか持っていなかったからです。しかし、タッチパネル携帯の、画面の大きい携帯電話は 16:9 の画像の写真がメインです。
 ブログ用に作成したテキストファイルを、後で修正、、などとしなくてもブログ原稿が作成できるように 16:9 の画像の指定も入れるよう手直ししました。

 わざわざこんな事をしなくても、今では最新式のスマフォをPCの代わりにして、サクサクと投稿している方が普通なのでしょうが、当方は相変わらず、Pythonアプリで色々とやっています。半分、惚け防止のようなところもあります。

 例によって 「Pythonスクリプト雑記」 の 「6.fubuki で WEB 作成」を改訂しました。
 モジュールもそちらに掲載しました。
 

| | コメント (0) | トラックバック (0)

2017年4月 4日 (火)

Python: 画像リサイズスクリプト PyResizeJpg を更新した。V_004_0

2017-04-04(火)晴れ

 先日更新したばかりの PyResizeJpg ですが、また更新しました。
  先日の記事「Python: 画像リサイズスクリプト PyResizeJpg 改造の後処理をした。V_003_0
  PyResizeJpg は携帯電話からのブログ投稿用に、写真などの画像ファイルをリサイズするスクリプトです。先日の更新はE7-00用の修正だったわけですが、E7-00で使ってみているうちに気がつきました。それは、リサイズ後の画像ファイルの縦横比がおかしくなっているようなのです。考えてみたら、今までは4:3のQVGA画像しか扱っていませんでしたが、E7-00の写真画像は16:9です。それを、4:3に無理矢理リサイズしたことになっているわけです。
 ということで、アスペクト比を固定でリサイズするようにしました(keepaspect=1でリサイズする)。
 ちゃんと動いてはいるのですが、使ってみないと分からない部分というのは有るものです。先日の更新前に分かれば、、と思っても後の祭りです。

 「Pythonスクリプト雑記」 の 「6.fubuki で WEB 作成」を改訂しました。
 モジュールもそちらに掲載しました。
 

| | コメント (0) | トラックバック (0)

2017年3月30日 (木)

Python: 巨大掲示板ログ読みスクリプト(st2ch_m)改造の後処理をした。V_045

2017-03-30(木)晴れ/曇り

 某巨大掲示板のログ読みのためのスクリプト st2ch_m に、Nokia E7-00 携帯電話対応の変更を入れ、それをPythonスクリプト雑記に記入する後処理を行いました。
  st2ch_mは某巨大掲示板のログ読みのためのスクリプトですが、某巨大掲示板のインタフェース仕様が変わったため、現用としては使用できません。使えた時代にダウンロードしてあったログを読むことくらいしか、今のところ使用法は思いつきません。
 でも、これを元に何かを作成することもあるかもしれないので、E7-00対応の内容が頭にあるうちに変更しておくことにしました。何日か前に書いたPyDocViewerも、このスクリプトの画面表示方法を参考に作成したものです。動くスクリプトが沢山あれば、次のものを作成するときの資源になることが多いので、動くように保守しておくことにしました。

 ということで、「Pythonスクリプト雑記」 の「21.st2ch を使う」を更新しました。
 モジュールもそちらに載せました。
 

| | コメント (0) | トラックバック (0)

より以前の記事一覧