pythonの基本処理(個人的なメモ)

ここのとろ時間と気分に余裕が無いせいか、プログラム関連の記事を書いてなかったことに気が付きました。
なので、今日はPtyhonの基本的な構文を少しだけ書き残しておこうと思います。
ここのサンプルでは基本的な処理のみでクラス化とか関数化とかは書いていません。

クラス化とか関数化を使ったサンプルは下記のGitHubにあります。
https://github.com/brokendish/PythonQuery
https://github.com/brokendish/picasa-CGIHTTPServer

範囲を選択_002

https://www.python.org/

 

下記のpython基本サンプルでは1つのスクリプトとして動くようにしています。

https://gist.github.com/brokendish/e2ca7f8745333d548d2e

サンプルはGistにも置いています↑

#!/usr/bin/python 
#!/usr/bin/python 
# -*- coding: UTF-8 -*-
 
#CSV
#モジュールをインポート 
#デミリッタを使用してawkのような処理を行う事が可能 
import csv 
#標準出力に出力したいのでsysをインポート 
import sys 
#ファイルの存在確認をしたいのでosをインポート 
import os 
#コマンドを実行 
import commands 
 
 
#文字コードの確認 
print "*" * 40
print "文字コードの確認" 
print "*" * 40
print sys.stdin.encoding 
print sys.stdout.encoding 
print sys.stderr.encoding
 
 
#コマンドライン引数を取得 
print "*" * 40
print "コマンドライン引数を取得" 
print "*" * 40
hiki1=sys.argv[1] 
hiki2=sys.argv[2] 
print "argv1: " + sys.argv[1] 
print "argv2: " + sys.argv[2]
 
inFile="./aaa.lst" 
outFile="./out_aaa.lst"
 
#--------------------------------------------
#下記で使うファイル作成
print "*" * 40
print "ファイル[",inFile,"]の準備" 
print "*" * 40
str =  """Python World@123
Brokendish@456
How TO@789"""
print "ファイル[",inFile,"]作成" 
f = open(inFile, 'w') # 書き込みモードで開く
f.write(str) # 文字列をファイルに書き込む
f.close() # ファイルを閉じる
#ファイル表示
print "作成したファイル表示" 
for line in open(inFile, 'r'):
    print line
#--------------------------------------------
 
#range で10回ループさせる--------------------------------------------①
print "*" * 40
print "range(10)で10回ループさせる①" 
print "*" * 40
for i in range(10):
	print i,':','AAAAA'
 
 
#ファイル存在確認----------------------------------------------------②
print "*" * 40
print "ファイル存在確認②" 
print "*" * 40
if os.path.isfile(inFile):
	print inFile,'--入力ファイルを確認しました。'
	#入力ファイルをオープン 
	print "------------入力ファイルをオープン" 
	i=open(inFile,"r") 
else:
	print inFile,"--入力ファイルがありません。"
 
 
#出力ファイルをオープン------------------------------------------------③
print "*" * 40
print "出力ファイルをオープン③"
print "*" * 40
#書き込み専用でファイルを開く。存在する場合は追加。ない場合は作成する。 
print "-----------a 書き込み専用でファイルを開く。存在する場合は追加。ない場合は作成する。" 
o=open(outFile,"w")
 
for j in csv.reader(i,delimiter="@"): 
	print j[0] + "---" + j[1] 
#	ファイルに書き込み
	o.write(j[0] + "---" + j[1] + "/n")
#	標準出力に表示
	sys.stdout.write(j[0] + "---" + j[1] + "/n")
 
#標準入力から取得----------------------------------------------------④
print "*" * 40
print "標準入力から取得④" 
print "*" * 40
getStr=raw_input('TypeWords : ') 
print getStr 
 
 
#複数行に渡る文字の記述-----------------------------------------------⑤
print "*" * 40
print "複数行に渡る文字の記述⑤" 
print "*" * 40
print """Python World 
Brokendish 
How TO"""
 
 
#文字列の扱い(特殊文字をエスケープする場合はR又はrをつける)---------------⑥
print "*" * 40
print "raw文字列の扱い(特殊文字をエスケープする場合はR又はrをつける)⑥" 
print "*" * 40
print "c:¥M¥yData¥tmp¥data" 
print r"c:¥M¥yData¥tmp¥data" 
print R"c:¥M¥yData¥tmp¥data" 
 
 
#文字の長さを取得----------------------------------------------------⑦
print "*" * 40
print "文字の長さを取得⑦" 
print "*" * 40
print len("abcdefghijk") 
 
 
#インデックスを指定して文字を取得----------------------------------------⑧
print "*" * 40
print "インデックスを指定して文字を取得⑧" 
print "*" * 40
str = "brokendosh" 
print str[0] 
print str[1] 
print str[2] 
print str[3] 
print str[4] 
 
 
#文字列のスライス(substringみたいなの)----------------------------------⑨
print "*" * 40
print "文字列のスライス(substringみたいなの)⑨" 
print "*" * 40
str="abcde" 
print str[0:3] 
print str[2:3] 
 
 
#文字列を数値に変換---------------------------------------------------⑩
print "*" * 40
print "文字列を数値に変換⑩" 
print "*" * 40
str = "100" 
print int(str) 
 
 
#while 文------------------------------------------------------------⑪
print "*" * 40
print "wihile文⑪" 
print "*" * 40
num=0 
while num < 2:
	print "hello"
	num+=1
 
 
#コマンド実行----------------------------------------------------------⑫
print "*" * 40
print "コマンド実行⑫" 
print "*" * 40
print commands.getoutput("ls -la") 
moji = commands.getoutput("ls") 
print moji 
 
 
#改行区切り-----------------------------------------------------------⑬
print "*" * 40
print "改行区切り⑬" 
print "*" * 40
AAA=moji.split("\n") 
print AAA[0] 
 
 
#配列なくなるまでLOOP---------------------------------------------------⑭
print "*" * 40
print "配列なくなるまでLOOP⑭" 
print "*" * 40
for k in AAA:
	print k 
 
 
#Pythonではswitch文は無いのでif文で代用する------------------------------⑮
print "*" * 40
print "Pythonではswitch文は無いのでif文で代用する⑮"
print "*" * 40
print "-----------IF文(Or)" 
str_0 = "ABC"
str_a = "abc"
str_b = "ABC"
str_c = "123"
if str_0 == str_a or str_0 == str_b:
	print "str_0はabcかABCだね:",str_0
elif str_0 == str_c:
	print "str_0は123だね:",str_0
 
print "-----------IF文(In)" 
if str_0 in(str_a,str_0):
	print "str_0はabcかABCだね:",str_0
elif str_0 == str_c:
	print "str_0は123だね:",str_0
 
print "------------文字の繰り返し" 
print "*" * 30
 
#ファイル削除-------------------------------------------------------------⑯
print "*" * 40
print "ファイル[",inFile,"]削除⑯" 
print "ファイル[",outFile,"]削除⑯" 
print "*" * 40
os.remove(inFile)
os.remove(outFile)
 
#ファイル一覧表示---------------------------------------------------------⑰
print "*" * 40
print "ファイル一覧表示⑰"
print "*" * 40
files = os.listdir('./')
for file in files:
    print file
 
#辞書型(ハッシュマップみたいなもの)------------------------------------------⑱
print "*" * 40
print "辞書型(ハッシュみたいなもの)⑱"
print "*" * 40
dic = {}
dic['T']='Tokyo'
dic['K']='Kanagawa'
dic['C']='Chiba'
 
print dic['T']
print dic['K']
print dic['C']
print "---値を取得--------------------------"
print dic.get('T')
print dic.get('K')
print dic.get('C')
print "---Key情報を取得---------------------"
for key in dic.keys():
	print key
print "---値を全部取得----------------------"
for ret in dic.values():
	print ret
print "---Keyと値を全部を取得----------------"
for ret in dic.items():
	print ret
print "---値を入れ替える------Tokyo>>Toyota--"
dic['T']='Toyota'
print dic.get('T')
 
print "---値を削除--dic['T']----------------"
del dic['T']
print "---Keyと値を全部を取得----------------"
for ret in dic.items():
	print ret

実行方法

./pythonSMP.py 123 456

実行結果

 ./pythonSMP.py 123 456
****************************************
文字コードの確認
****************************************
UTF-8
UTF-8
UTF-8
****************************************
コマンドライン引数を取得
****************************************
argv1: 123
argv2: 456
****************************************
ファイル[ ./aaa.lst ]の準備
****************************************
ファイル[ ./aaa.lst ]作成
作成したファイル表示
Python World@123
 
Brokendish@456
 
How TO@789
****************************************
range(10)で10回ループさせる①
****************************************
0 : AAAAA
1 : AAAAA
2 : AAAAA
3 : AAAAA
4 : AAAAA
5 : AAAAA
6 : AAAAA
7 : AAAAA
8 : AAAAA
9 : AAAAA
****************************************
ファイル存在確認②
****************************************
./aaa.lst --入力ファイルを確認しました。
------------入力ファイルをオープン
****************************************
出力ファイルをオープン③
****************************************
-----------a 書き込み専用でファイルを開く。存在する場合は追加。ない場合は作成する。
Python World---123
Python World---123/nBrokendish---456
Brokendish---456/nHow TO---789
How TO---789/n****************************************
標準入力から取得④
****************************************
TypeWords : 555555555555555555
555555555555555555
****************************************
複数行に渡る文字の記述⑤
****************************************
Python World 
Brokendish 
How TO
****************************************
raw文字列の扱い(特殊文字をエスケープする場合はR又はrをつける)⑥
****************************************
c:¥M¥yData¥tmp¥data
c:¥M¥yData¥tmp¥data
c:¥M¥yData¥tmp¥data
****************************************
文字の長さを取得⑦
****************************************
11
****************************************
インデックスを指定して文字を取得⑧
****************************************
b
r
o
k
e
****************************************
文字列のスライス(substringみたいなの)⑨
****************************************
abc
c
****************************************
文字列を数値に変換⑩
****************************************
100
****************************************
wihile文⑪
****************************************
hello
hello
****************************************
コマンド実行⑫
****************************************
合計 272980
drwxr-xr-x  5 hoge hoge      4096  8月  9 15:15 .
drwxr-xr-x 12 hoge hoge      4096  6月 30 19:13 ..
drwxr-xr-x  2 hoge hoge      4096  1月  2  2014 MySQLbrowser
drwxr-xr-x  4 hoge hoge      4096  1月  2  2014 PKG-Make
drwxr-xr-x  3 hoge hoge      4096  1月  2  2014 PythonQuery
-rw-rw-r--  1 hoge hoge        42  8月  9 10:15 aaa.lst
-rw-r-----  1 hoge hoge 279474582  5月  3  2012 access_all.log
-rwxr-xr-x  1 hoge hoge      6123  2月 29  2012 gui_python.py
-rw-rw-r--  1 hoge hoge         0  8月  9 10:15 out_aaa.lst
-rw-r--r--  1 hoge hoge       572  8月  9 10:01 py_hist
-rwxr-xr--  1 hoge hoge      7043  8月  9 10:15 pythonSMP.py
-rwxr-xr--  1 hoge hoge      7046  8月  9 10:21 pythonSMP.py~
MySQLbrowser
PKG-Make
PythonQuery
aaa.lst
access_all.log
gui_python.py
out_aaa.lst
py_hist
pythonSMP.py
pythonSMP.py~
****************************************
改行区切り⑬
****************************************
MySQLbrowser
****************************************
配列なくなるまでLOOP⑭
****************************************
MySQLbrowser
PKG-Make
PythonQuery
aaa.lst
access_all.log
gui_python.py
out_aaa.lst
py_hist
pythonSMP.py
pythonSMP.py~
****************************************
Pythonではswitch文は無いのでif文で代用する⑮
****************************************
-----------IF文(Or)
str_0はabcかABCだね: ABC
-----------IF文(In)
str_0はabcかABCだね: ABC
------------文字の繰り返し
******************************
****************************************
ファイル[ ./aaa.lst ]削除⑯
ファイル[ ./out_aaa.lst ]削除⑯
****************************************
****************************************
ファイル一覧表示⑰
****************************************
gui_python.py
access_all.log
py_hist
pythonSMP.py
PythonQuery
MySQLbrowser
pythonSMP.py~
PKG-Make
****************************************
辞書型(ハッシュみたいなもの)⑱
****************************************
Tokyo
Kanagawa
Ciba
---値を取得--------------------------
Tokyo
Kanagawa
Ciba
---Key情報を取得---------------------
C
K
T
---値を全部取得----------------------
Ciba
Kanagawa
Tokyo
---Keyと値を全部を取得----------------
('C', 'Chiba')
('K', 'Kanagawa')
('T', 'Tokyo')
---値を入れ替える------Tokyo&gt;&gt;Toyota--
Toyota
---値を削除--dic['T']----------------
---Keyと値を全部を取得----------------
('C', 'Chiba')
('K', 'Kanagawa')

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です