スクリプト起動時の引数(argv)を得る

sysモジュールのargv[]リストで引数が得られる。
argv[0]は起動したpythonスクリプトファイルの名前が入る。

C:\Python23jp>test.py aaa bbb ccc

の場合は、

argv[0] = "C:\Python23jp>test.py"
argv[1] = "aaa"
argv[2] = "bbb"
argv[3] = "ccc"

ってこと。
argv = ["C:\Python23jp>test.py","aaa","bbb","ccc"]
と代入されているのと同じ

便利なhelp(変数の型を調べる)

>>> a = 10
>>> type(a)

>>> a = "test"
>>> type(a)

>>> a = [1, 2, 3]
>>> type(a)

>>> a = (1, 2, 3)
>>> type(a)

>>> a = {1:1, 2:2, 3:3}
>>> type(a)

>>> def b():
	print "test"

	
>>> a = b
>>> type(a)

>>> import urllib
>>> a = urllib
>>> type(a)

>>> a = urllib.urlopen
>>> type(a)

>>> a = urllib.urlopen("http://www.google.co.jp")
>>> type(a)

>>> a = a.read()
>>> type(a)

    

基本的なファイル・ディレクトリ操作

▼使い方
以下は、cドライブ直下にtest.txtが存在し、カレントディレクトリ(作業フォルダ)が"C:"であることを前提
(Pythonは"c:python23"にインストールされている状態を前提)
なお、Python Shell上では[¥]記号はバックスラッシュ(\)で表示される。
([c:¥¥]→[c:\\])
バックスラッシュを入力したいときは¥キーを押せばよい。

>>> import os
>>> os.getcwd()			#現在のカレントディレクトリを調べる
'C:\\'
>>> os.chdir("c:\\python23")	#カレントディレクトリを移動する
>>> os.getcwd()
'C:\\python23'
>>> os.chdir("C:\\")
>>> os.getcwd()
'C:\\'
>>> os.access("test.txt", os.F_OK)	#ファイルが存在するか調べる
True				#True:有る。 False:無い。
>>> os.access("test.txt", os.R_OK)	#ファイルが読み込み可能か調べる
True
>>> os.access("test.txt", os.W_OK)	#ファイルが書き込み可能か調べる
True
>>> os.access("test.txt", os.X_OK)	#ファイルが実行可能か調べる
True
>>> os.path.isdir("c:python23")	#ディレクトリが存在するか調べる
True
>>> os.path.isdir("c:None")		
False
>>> os.path.isdir("c:Filename.txt")		
False
>>> os.path.abspath("test.txt")	#絶対パスを調べる
'C:\\test.txt'
>>> (dir, file) = os.path.split("c:python23/python.exe")	#パスを分割する
>>> print dir
c:python23
>>> print file
python.exe
>>> os.path.join(dir, file)		#パスを結合する
'c:python23\\python.exe'		#パスの区切りは自動的にosに合わせてくれる。
>>> path = os.path.join(dir, file)
>>> os.path.exists(path)
True
>>> os.mkdir("testFlder")		#ディレクトリ(フォルダ)を作る
>>> os.listdir("")			#子ディレクトリとファイルのリストを返す
#【実行結果は省略】
>>> import shutil
>>> shutil.copyfile("test.txt", "copytest.txt")	#ファイルをコピーする
>>> shutil.move("test.txt", "c:\\testFlder")		#ファイルを移動する
>>> shutil.move("c:\\testFlder\\test.txt", "c:\\")
>>> os.rmdir("testFlder")		#ディレクトリを削除する
>>> os.mkdir("testFlder")
>>> shutil.move("copytest.txt", "c:\\testFlder")
>>> os.rmdir("testFlder")		#ファイルの入っているディレクトリは削除できない
Traceback (most recent call last):
  File "", line 1, in -toplevel-
    os.rmdir("testFlder")
OSError: [Errno 41] Directory not empty: 'testFlder'
>>> shutil.rmtree("testFlder")	#中身のファイルごとディレクトリを削除する。
>>> import glob
>>> glob.glob("test.*")		#ワイルドカードを使ってファイル検索(リストを返す)
['test.txt']
>>> os.remove("test.txt")		#ファイルを削除する。

参考:
6.1.4 ファイルとディレクト
http://www.python.jp/doc/release/lib/os-file-dir.html
6.2 os.path -- 共通のパス名操作
http://www.python.jp/doc/release/lib/module-os.path.html
6.25 shutil -- 高レベルなファイル操作
http://www.python.jp/doc/release/lib/module-shutil.html

基本的なファイル操作

ファイル操作の手順は
1.ファイル開く(オープン)
2.ファイル弄る(読んだり、書いたり)
3.ファイル閉じる(クローズ)
ファイルのオープンにはfile()を使う。
書式は、

file("ファイル名", "フラグ")

open("ファイル名", "フラグ")は、file("ファイル名", "フラグ")でもOK*1
フラグでファイルモードを指定。

r	読み取り専用
w	書き込み専用
a	追加(ファイルを開く時、ファイルの参照点は自動的にファイルの末尾に移動する)
r+	更新(読み取りと書き込み)
w+	ファイルを切り捨て(空にし)た後、そのファイルを読み書き用に開く
a+	ファイルを読み書き用に開く、参照点は自動的にファイルの末尾に移動
b	他のオプションと一緒に指定すると、ファイルをバイナリモードで開く

練習用のテキストファイルを作る(text.txt)

1234567890
ABCDEFGHIJKLMNOPQRSTUVWXYZ
あいうえおかきくけこさしすせそ

ファイルは現在作業中のフォルダ(カレントディレクトリ)に保存することとする。
現在作業中のフォルダを知りたい時は以下

>>> import os
>>> print os.getcwd()

作業中のフォルダを変更したい時は以下

>>> import os
>>> os.chdir("c:\\")

Python Shell 上では¥記号は\(バックスラッシュとして表示される)→os.chdir("c:\\")

Python Shellで読み出しの練習
 用語:ファイルポインタ(現在の読み込み、書き込み位置)

>>>f = file('text.txt','r') #text.txtをopen
>>>f.readlines()		#ファイルの中の行すべてを含んだリストを返す
['1234567890
', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ
', 'あいうえおかきくけこさしすせそ']
>>>f.readline()		#ファイルから1行だけ読み取る
''			#readlinesの後なのでポインタがファイルの終端に
>>>f.tell()	#ポインタの現在位置
106L
>>>f.seek(0)	#ポインタをファイルの先頭に移動
None
>>>f.tell()	#ポインタがファイルの先頭に戻っているか確認
0L
>>>f.readline()	#もう一度ファイルから1行だけ読み取る
'1234567890
'
>>>f.readline()	#続けて一行
'ABCDEFGHIJKLMNOPQRSTUVWXYZ
'
>>>f.readline()	#さらに一行
'あいうえおかきくけこさしすせそ
'
>>>f.readline()	#最後
''
>>>f.seek(0)	#ポインタをファイルの先頭に移動
None
>>>f.read(10)	#10バイト分読む
'12345'
>>>f.read(10)	#続けて10バイト分読む
'67890'
>>>f.seek(0)	#ポインタをファイルの先頭に移動 
None
>>>f.read(2)	#一文字(全角なので2バイト)だけ読む
'1'
>>>f.seek(10,0)	#ファイルの先頭から10バイト分、ポインタを移動
>>>f.read(2)
'6'
>>>f.seek(20,1)	#現在の位置から20バイト分、ポインタを移動
>>>f.read(2)
'F'
>>>f.seek(-2,2)	#ファイルの終端から2バイト分前へポインタを移動
>>>f.read(2)
'そ'
>>>f.close()	#ファイルを閉じる

ファイルに書き込むにはf.write(string)

text.txtに「abc」を追加してみる

>>>f = open('text.txt','a')
>>>f.write('abc\n')	#ファイルに追加するときは\n(改行コード)を最後に付ける
None
>>f.close()

text.txtを開くと

1234567890
ABCDEFGHIJKLMNOPQRSTUVWXYZ
あいうえおかきくけこさしすせそabc

となっているはず。
参考:
7.2 ファイルを読み書きする
http://www.python.jp/doc/release/tut/node9.html#SECTION009200000000000000000
2.3.8 ファイルオブジェクト
http://www.python.jp/doc/release/lib/bltin-file-objects.html

*1:Python 2.2以降

標準モジュール(ライブラリ)

モジュールは自分で作ることもできるけれど、Pythonには標準でついてくるモジュールが非常に豊富なので、ちょっとした使い捨てスクリプトを作るときにはほぼ事足りる。
参考:
10. 標準ライブラリの簡単なツアー
http://www.python.jp/doc/release/tut/node12.html
6. モジュール
http://www.python.jp/doc/release/tut/node8.html