Devlopment note / Python 検索結果

検索件数 : 15

1

こんにちは。明月です。この投稿はpythonでredisデータベースに接続して使い方に関する説明です。redisデータベースはrdb種類ではなく、nosql種類のkey-valueタイプのデータベースです。簡単に共有メモリのデータベースです。以前の投稿でlinux環境にインストール及び使い方に関して説明したことがあります。リンク - [centos] redisデータベースをインストールする方法とコマンドを使い方そのredisデータベースをpythonで使ってみましょう。pythonでredisデータベースを使うためにはredisライブラリをインストールするべきです。私はもうインストールされているのでインストール済みで表示しますね。インストールをしてない方は上のコマンドでインストールしたら良いでしょう。インストールしたらpythonソースでredisを使ってみましょう。基本的な使い方はkeyを利用してデータを入力して取得する関数です。接続方法にはstrictredis関数を利用して直接にconnectionを取得する方法があるし、poolをまず生成してpoolからconnectionを取得する方法があります。どっちらかが良いか言うことは難しいですが、poolがコネクションを管理するので、リソース管理ではpoolの方が良いでしょう。上の例はシングルプロセスで動いているのでpoolを使わなくても特にコネクション管理が必要ないですが、マルチスレッド環境ならconnection管理が必要なのでpoolを使う方が良いということです。上のソースはキーの満了時間設定です。単位は秒単位で設定できます。次はredisで使うlistとmap、set、sortedsetのデータタイプです。pythonは使う人により実装する仕方が違いますが、私はpythonでプログラムを作ることよりプロジェクトの補助手段としてバッチスクリプトなどを作成して使うことでよく活用します。その状況で様々なローカルでデータを共有するかjavaやc#でredisを使うならその値を確認してテストする目的でよく使います。ここまでpythonでredisデータベースに接続して使い方に関する説明でした。ご不明なところや間違いところがあればコメントしてください。

Devlopment note / Python

#python,#redis

作成日付 : 2022/02/21 18:23:49       修正日付 : 2022/02/21 18:24:37

2

こんにちは。明月です。この投稿はpythonでseleniumライブラリを使う方法(自動ウェブテスト、ウェブスクレイピング)に関する説明です。まず、seleniumとは、ウェブブラウザのドライバーに接続して制御できるライブラリで普通はウェブテストやウェブスクレイピング領域でよく使う技術です。理解しやすく説明すると、pythonのスクリプトで我々がよく使うクロームブラウザを制御することで特定ボタンを自動にクリックするかウェブページを移動しながらデータを収集してウェブテストやウェブスクレイピングで活用できるライブラリです。以前にはc#でgeckoブラウザをブラウザをコントロールする方法に関して説明したことがあります。link - [c#] geckoライブラリを利用してウェブスクレイピングする方法seleniumとgeckoブラウザの差異はgeckoブラウザをブラウザのオブジェクトを取得してformコントロールに付けて開発することで実際のブラウザを使うことではなくブラウザのオブジェクトライブラリを使うことです。でも、seleniumの場合はブラウザのライブラリを利用することではなく、もうpcにインストールされたウェブブラウザをseleniumライブラリを通って制御することです。これはもっとユーザ環境みたいに設定ができるのでgeckoブラウザより実際的なウェブテスト環境を構築することができる利点があります。このseleniumライブラリを使うためにはpythonからseleniumライブラリをダウンロードしましょう。私はもうインストールされているとメッセージが出ました。ライブラリをインストールしたら今回はドライバーをインストールしなければならないです。ここではクローム(chrome)の例で説明します。firefoxやieに関しても同じ流れです。まず、インストールされたクローム(chrome)のバージョンを確認しましょう。クローム(chrome)ブラウザの右上のメニューをクリックしてhelp -> about google chromeを押下しましょう。そうすると上のイメージ通りに現在のバージョンが表示されます。下記のリンクに移動して小数点前のバージョンを合わせて選択しましょう。link - https://sites.google.com/a/chromium.org/chromedriver/d

Devlopment note / Python

#python,#selenium

作成日付 : 2021/10/25 19:29:00       修正日付 : 2021/10/25 19:29:00

3

こんにちは。明月です。この投稿はpythonでメール(smtplib)を送信する方法に関する説明です。プログラムのプロジェクト中でメール発送することに関するプログラム作成がすごくあると思います。例えば、ウェブサービスで会員加入認証やパスワード再設定、様々なアラムオプション、お知らせなどがあると思います。ウェブサービスではなくてもローカルでは大量広告メール(spam)もあるし、スケジュールアラムもあります。そのため、どんなプログラムでもメールに関するモジュールは大事だと思います。pythonでメールライブラリを使うためにはメールプロトコールに関しても少し知らなければならないです。メールプロトコールはsmtp(simple mail transfer protocol)を使いますが、これがテルネット方式になっているしhelo、mail、rcpt、dataのコマンドで通信します。私の説明よりウィキによく説明されているのでご参考をお願いします。link - https://ja.wikipedia.org/wiki/pythonでメールを発送する前にメールサーバー設定が必要です。google mail - https://support.google.com/私の場合はgoogleのメールをよく使います。先にクロムに接続して右上のアカウントの管理に行きます。アカウント管理に移動して安全性の低いアプリのアクセスのタブに移動します。安全性の低いアプリの許可を有効にします。このチェックをしないと外部からグーグルメールを使用できないようにすることです。なので、idやpwの漏れがなければそんなに問題はありません。pythonでソースを作成してメールを発送しましょう。作成が終わったら実行しましょう。実行すれば上みたいにバウンダリーが作成されたことを確認できます。メールがよく発送されたことを確認できます。link - https://docs.python.org/3/library/smtplib.htmllink - https://docs.python.org/3.4/library/email-examples.htmllink - https://stackoverflow.com/questions/17759860/ここまでpythonでメール(smtplib)を送信する方法に関する説明でした。ご不明なところや

Devlopment note / Python

#python,#smtplib,#mail

作成日付 : 2020/07/27 18:38:43       修正日付 : 2020/07/27 18:38:43

4

こんにちは。明月です。この投稿はpythonでhttpconnection(requestsモジュール)でウェブサーバーで接続する方法に関する説明です。ウェブサーバーとブラウザの通信は要請、応答構造でなっています。要請はホストアドレスを含めてページを要請することだし、応答は要請に対して応答メッセージ(ヘッダー)とhtmlをブラウザに送信することです。ウェブページはブラウザでjavascriptが実行してcss styleに合わせて画面に見えることですが、ブラウザのレンダリングの役割です。サーバーとブラウザの間の通信はstring(byte[])タイプで送受信することだけです。ローカルにphpで簡単な例のソースを作成し、pythonでrequest要請して、応答を受けましょう。pythonでウェブサーバーを接続することを簡単です。requestのモジュールからセッションを受け取ります。後、そのセッションでlocalhostを要請して応答する結果を受け取ります。応答結果はheadersとtext、contentが一番重要なデータです。textの結果をみれば、paramのキーでquery string testを送ったので、上のphpソースの結果通りget - query string testの結果が出ました。今回はpostタイプでsession値を入れてgetタイプで値を取得する方法を説明します。pythonではrequestsモジュールを使う時、sessionだけちゃんと管理すれば別にクッキー設定がなくてもセッションの保持が可能です。(c#とjavaと同じ機能があるかどうかしらべなければならないな。)そうすれば応用でウェブサーバからもloginしてデータを取得することができます。requestの関数はpost, getのメソッドがるクラスタイプです。responseは仕様によって様々の関数と変数を使います。下記の表で纏めました。 関数及びプロパティ 説明 apparent_encoding エンコード値に変換 content 応答内容をバイト単位で変換 cookies サーバーから送っ

Devlopment note / Python

#python,#requests

作成日付 : 2020/07/20 14:41:51       修正日付 : 2020/07/20 14:41:51

5

こんにちは。明月です。この投稿はpythonでexcel(openpyxl)を扱う方法に関する説明です。会社で仕事する方なら必須的に知るべきなプログラムはエクセルだと思います。そのためかエクセルライブラリはどのプログラム言語でも存在します。javaとc#ではapache財団で提供するpoiライブラリがありますが、pyhonは独自のライブラリがあります。link - https://openpyxl.readthedocs.io/en/stable/usage.htmlexcelファイルを生成する方法に関して説明します。上の結果はソース上でprint関数を使って結果を出力しました。始めはエクセルを生成してシートの状況を確認する時にリストタイプでsheetがあることを確認できます。workbookを生成すればsheetというシートが自動に生成されます。次はsheetの名を「test1」に変更し、「test2」というシートを使いしました。また、検索すればシートが「test1」、「test2」があることを確認できます。その後、セルに文字タイプのデータを入れました。タイプがgeneralということで出ました。次のセルに日付を格納して'yyyy-mm-dd'のタイプにデータを設定しました。main.pyファイルがあるところでexample1.xlsxファイルが生成されたことを確認できます。test1のシートにはhello worldと日付がフォーマットに合わせて入力されたことを確認できます。test2のシートにはa1の値とa2の値があってsum関数が実行されたことを確認できます。今回はexcelファイルを生成することではなくファイルを読み込んでスタイルまで変更します。(参考にpythonのopenpyxlはxlsタイプのエクセルは参照ができません。)c1からd13までデータを入れればグラフが自動に変更されるエクセルシートを作成しました。上の例はtestexcel.xlsxファイルを読み込んでsheetの値を変更する例です。c列とd列はrandom関数で-20から20までの数を格納します。結果はランダムなので可笑しい気温グラフになります。そしてc列にはfont設定とバックグラウンド色設定、枠設定をしました。枠のside関数の値はcolorの場合、hexデータを入れるし、styleの場合、格のスタイル

Devlopment note / Python

#python,#openpyxl,#excel

作成日付 : 2020/07/16 16:40:31       修正日付 : 2020/07/16 16:40:31

6

こんにちは。明月です。この投稿はpythonでファイル圧縮、解凍(zipfile)する方法に関する説明です。プログラムのプロジェクトを開発する時に圧縮ファイルをよく使います。圧縮ファイルの長所はファイルサイズを減らすこともあるし、複数のファイルを一つのファイルで管理するために使う時もあります。そのため、pythonに圧縮ファイル(zip)を扱うライブラリがありますが、それがzipfileモジュールです。link - https://docs.python.org/3/library/zipfile.htmlまず、zip圧縮ファイルを作成する例です。zipfileでオプションがあります。ioと似ているな概念ですが'r','w','a','x'があります。wとxはファイルを作成するためのオプションですが、wはファイルが存在する場合に削除した後に新しく作成します。xはファイルが存在する場合にfileexistserrorエラーを発生します。aの場合は、存在するファイルに追加のファイルを挿入するか、変更するときに使用されます。rの場合は、zipファイルを読んでオプションです。結果を見れば、apacheのソースを圧縮しましたが、text.txtファイルとtext1.txtを追加されました。上の例は圧縮ファイルを解凍するソースです。まず、zipで必ず解凍しなくてもopenとreadで読み込んでファイルを書き出しができます。参考で上の例ではzipfile.zipfileの関数に圧縮ファイルを入れてstreamタイプのデータを読み込んて処理ができます。socket通信間に圧縮送受信する時、ローカルのディスクに圧縮を解凍しなくても圧縮ファイルのデータを読み込まれます。結果は上のtext.txtファイルとtext1.txtファイルだけ読み込んでコンソール出力しました。結果は「hello world!!」と「hello world string!!」の結果が出ました。pythonではzipfileモジュールでzipファイル内でファイルを別に削除する機能がないです。解凍して、ファイルを除いて再圧縮することですることしかないです。ここまでpythonでファイル圧縮、解凍(zipfile)する方法に関する説明でした。ご不明なところや間違いところがあればコ

Devlopment note / Python

#python,#zipfile

作成日付 : 2020/07/14 19:14:22       修正日付 : 2020/07/14 19:14:22

7

こんにちは。明月です。この投稿はapache cgiでpythonを使う方法に関する説明です。以前に私がpythonを利用してウェブサーバー(http.server)を構築する方法に関して説明したことがあります。link - [python] web serverを起動する方法(http.server)でも、私も実際にhttp.serverを利用してウェブサーバーを構築したことはありません。実はhttp.serverでサービスを構築すると思えばちゃんと運用するかの疑問もあるし、良いapiやオープンソースも多いのでpython(http.server)で構築する必要性を感じられません。ウェブapiプラットフォームをphpに決め、構築する場合にapacheで構築します。 php言語も個人的に素晴らしいウェブスクリプト言語だし、よく使うプログラム言語です。でも、ウェブの流れは様々のユーザが接続するマルチスレッド環境ですが、スクリプト言語のphp言語だけでコントロールが限界があるし様々なcのdllを参照して使うことはオブジェクトポイントやリソースを扱うことも簡単ではありません。その限界はapacheのcgiでpythonを運用してある程度に補完がされます。私の場合、特にpythonは統計やグラフなどのライブラリがすごく多いのでよく使います。なので、phpの言語の限界を超えてプログラミングを実装する場合はありません。apacheにphpを設定する方法は以前に説明したことがあるのでご参考をお願します。link - [php] php 開発環境設定とeclipse(ide)の設定apacheのcgiではperlとpythonを使うことがあります。perlも良いプログラム言語ですが、少し古い言語だし、コミュニティも以前より小さくなったので、最近はよく使わないかと思いもあります。(perl開発者にはすみません。)そうならapacheのhttpd.confでcgiを設定しなければならないです。apacheは基本的にcgiがperlで設定されているのでpythonを追加します。(参考にapacheが実行するpcにはpythonがインストールしなければならないです。)そしてapacheフォルダに行ったらcgi-binフォルダにあるのでそこにindex.pyを作成します。上の例をみれば私がパラメータでdataとtestの値を出力す

Devlopment note / Python

#python,#apache,#cgi

作成日付 : 2020/07/09 19:58:19       修正日付 : 2020/07/09 19:58:19

8

こんにちは。明月です。この投稿はpythonでweb serverを起動する方法(http.server)に関する説明です。私の場合はpythonをローカルスクリプトによく使うので、pythonでウェブサーバーを構築する場合はほぼないです。また、pythonではdjangoというウェブフレームワークがあるのでpythonで直接にウェブサーバーを構築する方はいないと思います。個人的の考えですが、普通のデベロッパーならpythonだけ扱う人はいないと思います。メインはjavaあるいはc#、phpを扱うことで足りない部分(?)や開発の便利性のためpythonを使う人がほとんどなのでウェブサーバを作ることはもっとないと思います。javaやc#の場合にpythonとともに使ってcomplex言語タイプで使うこともできますが、そんなことまで実装する方はいないと思います。phpの場合はスクリプトのウェブ言語なので言語の限界があるのでpythonと一緒に使うことがあると思います。でも、そのケースもpythonで独立的にhttp.serverでサーバーを構築することよりapacheのcgiを利用することがsessionやcookie管理的にも楽なのでhttp.serverは使いません。でも、よく使わないライブラリをなぜ紹介することではそれでも全然使うことではなく、すごく簡単に構築できるので簡単なことを構築することでよいからです。私の場合はこのhttp.serverを使う時、業務する時に様々なスクリプトを管理する場合があります。例えば、logファイル整理からデータベースバックアップ、マイグレーション、jenkinsなどで様々なスクリプトがあります。スクリプトだけではなく、パラメータによって実行する対象も設定する時もあります。それをただコンソールやスクリプトで管理することよりはウェブブラウザを利用する画面で管理することがよいと思って使います。(ロカールスクリプト管理ツールでjavaやphp、iisなどで管理することは大変です。)それならすごく簡単にウェブサーバーを構築します。ただ、静的なウェブサーバでwebsocketを設定して運用してもよいです。link - [python] websocketを使う方法でも、ここでは静的なサーバーを構築してjavascriptのwebsocketを使うための説明ではありません。動的なサーバ

Devlopment note / Python

#python,#web server

作成日付 : 2020/07/09 00:13:13       修正日付 : 2020/07/09 00:13:13

9

こんにちは。明月です。この投稿はpythonでwebsocketを使う方法に関する説明です。websocketはウェブブラウザからjavascriptでtcp同期通信するためのプロトコルです。以前、javaでwebsocketを実装したことがあるので、ご参考すれば理解しやすいと思います。link - [java] websocket (ウェブソケット)websocketの場合は普通はweb環境で実装します。でもphpの場合はwebsocketを実装することができません。現在はそうです。後はどうか知りません。でも、phpの場合は言語特性のせいにthreadを直接に管理することが難しいので将来でもできないじゃないかと思います。なのでその対策でnode.jsのsocket.ioとpythonのwebsocketがあります。グーグルで検索するとphpのwebsocketの対策でsocket.ioの説明が多いです。いつか機会があればnode.jsも説明したいですが、個人的にnode.jsを好きではありません。node.jsの言語的に限界があることよりpythonの良いローカルスクリプトがあるのに、あえてなぜ?と認識があるのでです。そしてsocket.ioは正確にwebsocket技術ではありません。ajax long polling技術ということでhttpプロトコルでrequest&response後に接続をすぐに切ることではなく、少しギャップをあげることです。なので、データが変わる時にブラウザにとって再要求をするようにすることです。ユーザが感じるには、httpのプーリングで、まるで接続が接続を維持するような効果を出す方法です。しかし、tcpで同期的に連結していることではないので、いろいろなバグが発生します。代表的なのが反応が遅い点がありますね。なので私の場合はpythonのwebsocketの実装がいいではないかと思います。pythonでwebsocketを使うためにライブラリをダウンロードしなければならないです。インストールが完了すればwebsocketスクリプトを作成しましょう。そしてクライアントはローカルの適当な場所にhtmlファイルで作成します。(pythonでwebサーバーを実装していないため、webブラウザを実行すべきhtmlファイルが必要です。)ウェブブラウザでの上に作成したhtmlを実行すると、j

Devlopment note / Python

#python,#websocket

作成日付 : 2020/07/07 17:29:18       修正日付 : 2020/07/07 17:29:18

10

こんにちは。明月です。この投稿はpythonとjavaのソケット通信する方法に関する説明です。以前にpythonとc#のソケット通信に関して説明したことがあります。link - [python] pythonとc#のソケット通信それでpythonとjavaのソケット通信に関しても説明した方がよいではないかと思って作成します。私の場合はjavaで開発すると思えば9割がトムキャットを利用するウェブプロジェクトになります。トムキャットを利用するのでウェブプロジェクトになりますが、内部でthreadを一つ作ってソケットサーバを待機してモバイルクライアントや各種アプリケーションが接続するサーバーを開発する時もあります。つまり、内部重要なプログラムの流れはソケットサーバですが、ソケットサーバをコントロールプログラムはウェブプロジェクトで開発することです。そのため、javaでソケット通信する時が全然ないことではないので、そのようなc#みたいに模擬サーバやクライアントが必要です。pythonのサーバソケットを作成しましょう。link - [python] 18. ネットワーク(socket)通信する方法データサイズの転送バイトはlittleエンディアンを使います。次はクライアントをjavaで作成しましょう。上の例をみればclient(java)で10回のメッセージを送る時、メッセージにindex番号を付けて送信しました。順番通りに受信することを確認できます。サーバにはメッセージを受け取ってコンソールに出力して「echo:」メッセージを付けってclientに再送信したことも確認できます。今回はjavaのサーバを作成してpythonのクライアントで接続します。上のjavaでsocketserverクラスを利用してソケット通信サーバを作成しました。今回はpythonでクライアントを作成しましょう。clientでメッセージを作って10回のループでサーバにメッセージを送信します。その後、サーバにはメッセージのメッセージにechoの文字列を付けてclientでメッセージを送信します。java server - python clientも問題なしでよくできます。javaサーバでエラーメッセージが表示される理由はclientで強制終了すればexceptionに発生します。javaの60番目exceptionでエラーメッセージが表示され

Devlopment note / Python

#Python,#java,#socket

作成日付 : 2020/07/03 18:35:50       修正日付 : 2020/07/03 18:35:50

11

こんにちは。明月です。この投稿はpythonとc#のソケット通信に関する説明です。開発の目的によってプログラムを使う方法の差がありますが、私の場合はメイン言語はjavaとc#でその以外に開発補助言語でpythonを使っています。その意味は例えばc#のプロジェクトでcs(client server)プログラムを開発する時、普通はチームでclientかserverのことを担当して開発することになります。(プロジェクトのサイズによって両方を一緒で開発する時もあります。)もし、私がclientを開発すると思えば、serverとclientの通信のプロトコルを開発する部分があります。その部分はhttpconnectionを利用することもあるし、soap通信することもあるし、一般ソケット通信することもあります。その時、serverとclientの通信部分を一緒で開発する方がよいですが、お互いにスケジュールの差異がある場合、clientでserverのスケジュールを合わせて待つことしかできないです。私の場合はスクリプト(pythonやnode.js)で模擬サーバを作って開発します。(逆にserver側で模擬クライアントを作ります。)個人的にjavascript(node.js)の言語もいいと思いますが、ローカルスクリプト言語としてnode.jsよりpythonがライブラリも多いし、早めに作成することができるのでよく使います。その目的ではなくても、スクリプトで他の言語間に通信することもできます。それならpythonサーバとc#のクライアント通信を説明します。上のソースは以前作成したpythonサーバーとそんなに差異がありません。link - [python] 18. ネットワーク(socket)通信する方法差異はlittleエンディアンを使うことではなく、bigエンディアンを使います。でも、to_bytesでbyteorderをbigに設定してもlittleエンディアンで転送します。from_bytesの場合はbigに設定するとbigエンディアンになりますが。。サーバを起動してクライアントを起動します。上の例をみればclient(c#)で「this message is sent from c# client.」というメッセージを送信するとserverではコンソールで出力して「echo :」を付けてclientに転送しま

Devlopment note / Python

#Python,#C#,#Socket

作成日付 : 2020/07/01 19:28:22       修正日付 : 2020/07/01 19:28:22

12

こんにちは。明月です。この投稿はpythonでini(環境設定ファイル)を扱う方法に関する説明です。以前、c言語やc++言語プログラムで環境ファイル設定タイプでinitialization設定ファイルということです。iniファイルの拡張子は普通はiniでなっていますが、confやcfgに使う時もあります。iniの設定構造はセッションとキーになっています。コメントはセミコロン(;)を使います。apacheなどini設定ファイルで環境ファイルがまだあります。なのでciツール(jenkins)でビルドする時、pythonで自動環境ファイル設定スクリプトを作ることでよく使います。configをリストのキーでセッション名を設定します。そのリストでディクショナリを設定すればディクショナリのキー、値によって環境ファイルを設定します。今回はiniファイルを読み込んでpythonで使いましょう。iniを読み込んでsectionsの関数を通ってセッションキーを取得します。そしてkeysの関数で環境ファイルのキーを取得することができるし、そのキーを通って値を出力することができます。phpをインストールするとphp.iniファイルがあります。pythonを利用してphp.iniファイルを扱いましょう。上のイメージはphp.iniをメモ帳で読み込むことです。親切にコメントがあります。でも、コメントが多すぎです。なので逆に値を探すのが大変です。私もたまにコメントが多すぎてコメントをすべて消したい時があります。上みたいにiniファイルを読み込んで再作成するとコメントがすべてなくなって綺麗なiniファイルができると思いました。でも、エラーが発生しました。調べるとiniファイルでセッションとキー単位で同じキーがあります。実際iniでセッションかつキーはユニックなのでデータが複数にあることは存在しません。でも、php.iniでは使います。インタネットを調べると私と同じ問題で解決したことがあります。link - https://stackoverflow.com/questions/15848674結果はコメントが削除されてiniが新しく作成されました。でも重複されたextensionのキーでは可笑しく入力されています。コメントが除いたiniファイルが生成されました。ここまでpythonでini(環境設定ファイル)を扱う方法に関する説明でした

Devlopment note / Python

#python,#ini

作成日付 : 2020/06/30 18:26:01       修正日付 : 2020/06/30 18:26:01

13

こんにちは。明月です。この投稿はpythonでjsonを扱う方法に関する説明です。以前にcsvとxmlを扱う方法に関して説明したことがあります。link - [python] ioを利用してcsvファイルを扱う方法link - [python] xmlファイルを扱う方法プログラムで人間が認識するデータ構造で様々がありますが、最近はjsonタイプをよく使います。jsonとはjavascript object notationの略語でjavascriptのデータ表記法です。つまり、javascriptの文法構造がjsonタイプです。javascriptがpythonと同じスクリプトだから表記法も似てます。例えば、中括弧{キー:値}のタイプはpythonのディクショナリです。[データ、データ]のタイプはリストタイプです。また、jsonのxmlの階層的表現も可能するので様々な活用度もたくさん高いタイプです。それならjsonデータを出力しましょう。ディクショナリタイプがjsonタイプなのでpythonのデータがそのままメモ帳に出力されました。今回はjsonタイプでデータを読み込んでpythonのディクショナリタイプに変換しましょう。結果をみればファイルのstrデータを確実に読み込みました。jsonタイプはphpのcomposerかnode.jsなどでよく使うデータタイプです。pythonを利用すれば環境ファイル設定が可能です。ここまでpythonでjsonを扱う方法に関する説明でした。ご不明なところや間違いところがあればコメントしてください。

Devlopment note / Python

#python,#json

作成日付 : 2020/06/29 19:18:15       修正日付 : 2020/06/29 19:18:15

14

こんにちは。明月です。この投稿はpythonでxmlファイルを扱う方法に関する説明です。最近はxmlファイルは以前よりよく使わないですけど、10年前でもプログラムの環境設定や標準データ構造でxmlをよく使いました。最近はjsonタイプがたくさん使います。xmlが構造がタグを開き、閉めの構造だし、各タグにアトリビュートを入れられる構造なのでデータを表現することではすごくいい構造です。例えば、コンパイル言語でクラスをデータとして作ると思えば、最初のタグをクラス名に作成し、派生タグに変数の値を格納できます。派生タグのアトリビュートを利用して変数のデータタイプなどを指定してクラスすることでドキュメントに作成することができます。xmlがこんなにいいことだけあることではなく、短所もあります。タグが開き、閉めることがあるのでファイルのサイズが大きくなるし、アトリビュートやデータが多くなれば可読性が落ちることがあります。特にデータサイズが大きくなることはパフォーマンスなどに関係があるものなので特に致命的な短所です。その為、最近はxmlと似ているjsonタイプをよく使います。でも、xmlタイプを全然使わないことではなく、パフォーマンスを関係ず、データの詳細に表現する必要がある時に使えます。特に、環境設定などでよく使いますが、代表的にc#のapp.configとtomcatのserver.xml、javaのpom設定などでよく使います。それで環境ファイルをプログラム的に管理することや整合性チェックなどでpythonソースを作成して管理します。例えば、jenkinsみたいにciでデプロイする時、jenkinsのshell commandを作成することでpythonコードを使えば環境設定管理をしやすくできます。上の結果をみればxmlがよく作られたことを確認できます。element.elementを使ってappendすることはsubelementを使うことと同じ結果になります。ソースステップのため、subelementを使うほうが良いと思います。そしてアトリビュートの場合、set関数を使って格納できます。今回はxmlファイルを読み込んでディクショナリタイプに生成しましょう。ルートによってリストではなくディクショナリタイプに生成されました。なので、ルートの中で出力すれば最初のリストのディクショナリタイプに生成されることを確認できます

Devlopment note / Python

#python,#xml

作成日付 : 2020/06/26 19:18:14       修正日付 : 2020/06/26 19:18:14

15

こんにちは。明月です。この投稿はpythonでioを利用してcsvファイルを扱う方法に関する説明です。pythonはローカルでよく使うスクリプト言語ですから様々なファイルを扱うライブラリがよく整理しているらしいです。他のプログラム言語だってできないことではありませんが、個人的にpythonが環境ファイルらしいなデータを作ることでは便利ではないかと思います。csvファイルはデータベースや様々テーブル形式のデータでよく使う形式です。csvファイルがカンマ(,)と改行の区分で作られました。今回はcsvファイルを読み込んで使いましょう。ファイルのコンマ(,)と改行区分でデータを読み込んでコンソールに出力しました。csvファイルにヘッダーが必要な場合があります。ディクショナリタイプを利用すればcsvファイルの一行目はデータのヘッダーで使えます。ディクショナリタイプになっているリストでcsvファイルを作成しました。そして一行目はheaderとしてタイトルを入れました。今回はまたcsvファイルをディレクトリタイプで読み込みます。結果はorderdictタイプで出力されます。一般ディクショナリタイプではないですが、ディクショナリの種類なのでディクショナリタイプでcsvファイルを読み込みました。ここまでpythonでioを利用してcsvファイルを扱う方法に関する説明でした。ご不明なところや間違いところがあればコメントしてください。

Devlopment note / Python

#python,#IO,#CSV

作成日付 : 2020/06/25 18:20:30       修正日付 : 2020/06/25 18:20:30