型グロブ

型グロブってなんぞ、と言うわけで簡単にまとめてみる。 #!/usr/bin/perl use strict; use warnings; use Data::Dumper; our $args = 1; our @args = (1, 2, 3); our %args = (1 => 999); sub args { print "Hello, world!\n"; } print Dumper ${ *main::arg…

useの話かも

「use」はモジュールをインポートするものですが、 package Foo; use strict; use warnings; sub new {}; sub foo {}; 1; 上記モジュールを利用するスクリプト #!/usr/bin/perl use strict; use warnings; use Data::Dumper; use lib qw(.) use Foo; print D…

requireとuse

なんか、Perlにはモジュールをロードするのに「require」と「use」があるが、最近は「use」が主流だけどPerl4の時は「require」でやってたよね。で何が違うのかと言うわけだが・・・ 名称 説明 require 実行時に読み込まれる use コンパイル時に読み込まれる…

シンボルテーブルのお話

Perlにはパッケージってのがあってパッケージごとに管理できるわけだよ。モジュールとか変数とかを、でだ、そのパッケージごとにシンボルテーブルがあって、それを見てみたい。 #!/usr/bin/perl use strict; use warnings; foreach (values %main::) { print…

Tie::Fileは少し面白いかも

tieについて調べていたら、Tie::Fileってのが面白そうだったんで使ってみた。 #!/usr/bin/perl use strict; use warnings; use Tie::File; tie my @array, 'Tie::File', './file_name.txt' or die $!; foreach (@array) { tr/a-z/A-Z/; } print sort @array;…

tieってなんぞ

久しぶりにPerlにさわって見た。でだ、残念な事に全て忘れていたよ。と言うわけで忘れないようにメモしておく。tieとは、 「オブジェクトではない、perlの組み込みデータタイプを裏でオブジェクト化する仕組み」 by 弾参照> の事だ。上記一文でもやもやして…

コンテンツの圧縮

XMLデータ等々を取得する場合、そのデータを圧縮し取得できるようだ。話には聞いていたが詳しく知らなかった。 >>> import urllib2, httplib >>> httplib.HTTPConnection.debuglevel = 1 >>> request = urllib2.Request('取得するXMLデータのURL') >>> reque…

コマンドライン引数

C言語ではコマンドラインオプションの引数を扱う場合、「getopt()」って関数があったと思うんだが、Pythonにも同様のものがあったね。うれしいよ。 import sys import getopt def main(argv): try: opts, args = getopt.getopt(argv, "ho:d", ["help", "outf…

スクリプトの初期動作追加

そんな大した話じゃないんだが・・・Pythonのスクリプト起動直後、何らかの初期値、環境等を構築したいと思う。例えば特定のモジュールを「import」したいとか、そんな事をスクリプトを起動後、毎回主導でやってたら面倒になると思う。スクリプト起動直後の…

パッケージについて

Pythonにはパッケージって概念あるよね。ただコード上で明示的にパッケージの宣言はしていないと思う。Perlなら「package」と明記するんだがPythonは処理系が自動的にパッケージを認識してくれるの? # TestClass.py class happyMonday(): pass class badTue…

printの表現方法

Pythonをがんばって勉強中の私です。本当はGoogle App Engineで何か作ろうと思ったんですが、Pythonがあまりにも面白いんで、GAEのほうは手がつきません。一応、オンラインマニュアルは読んだかな〜 >>> print("%s" % "This is it!") This is it! >>> print(…

sgmllibを使ってみた

sgmllibとは、SGML形式のテキストファイルを解析するモジュールって事なんだけどSGML形式ってなんぞ?SGML形式とは、簡単に解釈すればHTML形式やXML形式の親って事で良いよね。で、親だからHTMLやXMLを解釈できるって事。sgmllibを使ってみた。 from sgmllib…

リストの操作

便利ですねPythonって、でリスト操作の一部を見てみる。 >>> li = [] >>> dir(li) ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delsli ce__', '__doc__', '__eq__', '__ge__', '__getattribute__', '__getitem__', '__gets …

ディレクトリ内検索

ディレクトリ内検索と言うか、ディレクトリ内のファイル一覧を表示してみる。 >>> import os >>> os.path.join("c:\work\python", "sample001.txt") 'c:\\work\\python\\sample001.txt' >>> os.path.expanduser("~") 'C:\\Documents and Settings\\username'…

タプル、リスト、デクト

Pythonにはデータを作成する際に便利な構造が沢山?あります。 >>> t = () >>> l = [] >>> d = {} >>> dir(t) ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__ ge__', '__getattribute__', '__getitem__', '__getnewargs…

ファイルに書き込む

Pythonでファイルに書き込むには、 >>> f = open("logfile.log", "w") >>> f <open file 'sample001.py', mode 'w' at 0x00AF4410> >>> f.write("This is a pen!") >>> f.close() >>> print file("logfile.log").read() This is a pen! と言う事だ。OPEN関数の第二引数にモードを明記する。「r:read」「w:write</open>…

Pythonの変数宣言

ちょっと下記のコードを動かしてみた。 #!/usr/bin/evn python # -*- coding: utf-8 -*- def fileopen(filename): try: f = open(filename, "rb", 0) try: f.seek(-128, 2) data = f.read(128) finally: f.close() except IOError: print("IOError") if __na…

ファイルオープン

Pythonでのファイルオープン >>> f = open("/file/path/sample.txt", "r") どの言語も似たようなものですね。ただ、オープンに失敗した場合も考えると下記のほうが良いのかしら >>> try: ... f = open("/file/path/sample.txt", "r") ... except IOError: ..…

Pythonの変数隠蔽?

Pythonでクラスを作成した後、そのクラスに属する変数ってクラス変数?インスタンス変数?まあ〜なんだな。Javaとかいろんな言語やってると呼び方なんかどうでも良くなる。と言うよりもごちゃごちゃになって明確に分けるのを放棄してしまうよね。 >>> class …

Pythonの引用符

Pythonって知れば知るほど面白いよね。Pythonでのコメントは行の先頭に「#」をつけると、その行がコメントになります。それは良いとして、Pythonでは単一引用符「'」と二重引用符「"」では、何か動作に違いがあるの?わかりやすい例ではprint()での、それぞ…

モジュールのリロード

Pythonのインタプリタでいろいろ遊んでいるんだが・・・自分でモジュールを編集しながら試しているとモジュールをリロードしたい場合が多々あるわけだ、そんな時、インタプリタを終了して再度起動、その後、インポートしなおしていたんだがめんどくさい。な…

Pythonで属性表示を作ってみた

「dir()」って便利なものがあるんでオブジェクトやインスタンスを渡すと、それ自身が持っている属性と簡単な説明を表示するスクリプトを作ってみた。まあ〜初めてにしてはよくやったんでないの、と思っている。 #!/usr/bin/env python # -*- coding: utf-8 -…

Pythonのシステムパス

Pythonが見ているシステムパスの表示の仕方、絶対に忘れるのでメモメモ。ちなみに私が使っているのはWindows版のバージョンは2.5を利用してます。 >>> import sys >>> sys.path ['', 'C:\\WINDOWS\\system32\\python25.zip', 'C:\\Python25\\DLLs', 'C:\\Pyt…

Pythonのインクリメント

なぜPythonには「i++」ってできないの?他の多くの言語ではインクリメント、デクリメントは「i++」「i--」とかってすればいいのに〜 >>> i += 1 >>> i -= 1 何だか面倒だ。これはPythonが完全なオブジェクト指向の言語だからなの?と言う事で、 >>> type(1) <type 'int'></type>…

Python勉強中

ちょっとPythonが面白そうなんで今更ながら勉強中。忘れない内に書いとく。 >>> def f(): ... pass ... >>> type(f) <type 'function'> >>> type(list) <type 'type'> 便利だ。 >>> dir(f) ['__call__', '__class__', '__delattr__', '__dict__', '__doc__', '__get__', '__getattribute__'</type></type>…

実践CommonLispを読むその14

例外処理を越えて:コンディションと再起動 Javaの例外処理をもちっと柔軟にしたシステム。どうも書いてある内容の実用性があまり理解できない。これは本当に必要なんだろうか。個人的にLISPってもちっとLITEな言語だと思ってたよ。オブジェクト指向もそうだ…

実践CommonLispを読むその13

第十八章 FORMATの手習い FORMATって良いよね。と言うか詳しくはわからないけど、使いやすいし理解しやすいと思う。そんなFORMATだが、LOOPと同じように嫌っている人もいるみたいですね。私にはよくわからない話ですよ。FORMATの指示子ってのは、C言語に似て…

実践CommonLispを読むその12

第十六章 オブジェクト指向再入門:総称関数 LISPにオブジェクト指向ってのがある事じたい驚きだよ。LISPでのオブジェクト指向って、どのくらい重要なの?別段、オブジェクト指向で記述しなくともよさそうなものだが、個人的にはリストの扱い方を理解しておけ…

実践CommonLispを読むその11

第十四章 ファイルとファイルI/O ファイルのOPENとCLOSEのお話。 (open "/home/users/file.txt") で簡単オープン。ファイルが存在しない場合の処理をOPEN関数に指示する事もできる。 (let ((in (open "/home/users/file.txt" :if-does-not-exist nil))) (whe…

「Go」をMaxOS Xに入れてみた

既にLinux環境にインストールしてあるので別にインストールする必要はなかったんだが、面白そうなんでやってみた。環境:MacOS 10.5.8LinuxにインストールできたんだからMacも同じだろと思っていたんだが、やられた。まず久しぶりにMacを立ち上げたんでファ…