Python Snippet(一)
10597 ワード
//Linuxホストに注意
//指定ディレクトリのファイル名を削除します.tmpが接尾辞のファイル
//指定したフォルダ(サブフォルダ含む)の中で最大2つのファイルを出力する
//指定したファイル(サブフォルダを含む)のすべてのファイルとフォルダを削除する
//指定したファイルのファイルシーケンスを削除する
実行後にそれぞれ入力:
/srv/scratch/houdini_zpeng/Render/ship/shipA####.tif
101
300
シーケンスファイルshipA####.tif 101-300フレームから削除
//ファイルの絶対パスを見つける
//ファイルやフォルダがあるかどうかを判断する
//指定されたディレクトリアドレスのフォルダとファイルのリストを返します.
//取得フォルダ(サブフォルダ含む)におけるtxtファイルの数
OUTPUT:
os.walkはすべてのフォルダとサブフォルダに再帰的に入ります'.'文字は現在のフォルダを表します.//コマンドラインからパラメータを読み込む
sys.argvコンテンツは文字列タイプのリストで、リストの1つ目はプログラムの名前で、残りはcommand lineでプログラムの名前の後ろのパラメータです
//プログラムargtest command lineから複数のパラメータを受け入れる
OUTPUT:
//sys.argvのもう一つの例
OUTPUT:
//PIPE
//Shellから起動したプログラムは、Pythonの「Pipe」で起動できます.A pipe is an object that represents a running process.//os popenでls:
os.popenのパラメータは、open fileのようなfile pointerを返すコマンドを含む文字列です.readline(1行ずつ読む)またはread(一気に全部読む)を使用してls-lプロセスの実行結果を読み取ることができます.
//操作が完了したらfileのように閉じてpipeを閉じることができます
//ウェブページをキャプチャし、素拠を分析し、その基本的なデータ形式は以下の通りである.
//spanタグの数字をつかみ、個数と総和を計算する
//URLを入力:http://python-data.dr-chuck.net/comments_217954.html、次のデータが得られます.
//newList = [do something for variable in old list if condition]
//指定ディレクトリのファイル名を削除します.tmpが接尾辞のファイル
1 #!/usr/bin/python
2 import os , glob
3 dirname = '/tmp'
4 allpy = glob.glob(os.path.join(dirname,'*'))
5 for filename in allpy:
6 filesize = os.path.getsize(filename)
7 if(filename.endswith('tmp')):
8 try:
9 os.remove(filename)
10 except:
11 continue
//指定したフォルダ(サブフォルダ含む)の中で最大2つのファイルを出力する
1 #!/usr/bin/python
2 import os
3 dirname = '/tmp'
4 allsize = []
5 for (root,dirs,files) in os.walk(dirname):
6 for filename in files:
7 fullname = os.path.join(root,filename)
8 filesize = os.path.getsize(fullname)
9 allsize.append((filesize,fullname))
10 allsize.sort()
11 print allsize[-2:]
//指定したファイル(サブフォルダを含む)のすべてのファイルとフォルダを削除する
1 import os
2 for root, dirs, files in os.walk(top, topdown=False):
3 for name in files:
4 os.remove(os.path.join(root, name))
5 for name in dirs:
6 os.rmdir(os.path.join(root, name))
//指定したファイルのファイルシーケンスを削除する
1 #!/usr/bin/python
2 import os
3 sequence = raw_input('Sequence:')
4 sequence_start = int(raw_input('Start_Frame:'))
5 sequence_end = int(raw_input('End_Frame:'))
6 #remove the whitespace before or after the 'sequence'
7 sequence = sequence.strip()
8 lst = sequence.split('/')
9 sequence_path = sequence[:-len(lst[-1])]
10 sequence_name = lst[-1]
11 filename_lst = sequence_name.split('#')
12 padding = len(filename_lst[1:-1])+1
13 for index in range(sequence_start,sequence_end+1,1):
14 file_path = sequence_path + filename_lst[0] + (padding-len(str(index)))*'0' + str(index) + filename_lst[-1]
15 os.remove(file_path)
16
実行後にそれぞれ入力:
/srv/scratch/houdini_zpeng/Render/ship/shipA####.tif
101
300
シーケンスファイルshipA####.tif 101-300フレームから削除
//ファイルの絶対パスを見つける
1 >>> os.path.abspath('memo.txt')
2 '/Users/csev/memo.txt'
//ファイルやフォルダがあるかどうかを判断する
1 >>> os.path.isdir('memo.txt')
2 False
3 >>> os.path.isdir('music')
4 True
//指定されたディレクトリアドレスのフォルダとファイルのリストを返します.
1 >>> os.listdir(cwd)
2 ['music', 'photos', 'memo.txt']
//取得フォルダ(サブフォルダ含む)におけるtxtファイルの数
1 import os
2 count = 0
3 for (dirname, dirs, files) in os.walk('.'):
4 for filename in files:
5 if filename.endswith('.txt') :
6 count = count + 1
7 print 'Files:', count
OUTPUT:
python txtcount.py
Files: 1917
os.walkはすべてのフォルダとサブフォルダに再帰的に入ります'.'文字は現在のフォルダを表します.//コマンドラインからパラメータを読み込む
1 import sys
2 print 'Count:', len(sys.argv)
3 print 'Type:', type(sys.argv)
4 for arg in sys.argv:
5 print 'Argument:', arg
sys.argvコンテンツは文字列タイプのリストで、リストの1つ目はプログラムの名前で、残りはcommand lineでプログラムの名前の後ろのパラメータです
//プログラムargtest command lineから複数のパラメータを受け入れる
1 python argtest.py hello there
OUTPUT:
Count: 3
Type: <type 'list'>
Argument: argtest.py
Argument: hello
Argument: there
//sys.argvのもう一つの例
1 import sys
2 name = sys.argv[1]
3 handle = open(name, 'r')
4 text = handle.read()
5 print name, 'is', len(text), 'bytes'
OUTPUT:
1 python argfile.py mbox-short.txt
2 mbox-short.txt is 94626 bytes
//PIPE
//Shellから起動したプログラムは、Pythonの「Pipe」で起動できます.A pipe is an object that represents a running process.//os popenでls:
upperCaseList
を起動します.1 >>> cmd = 'ls -l'
2 >>> fp = os.popen(cmd)
os.popenのパラメータは、open fileのようなfile pointerを返すコマンドを含む文字列です.readline(1行ずつ読む)またはread(一気に全部読む)を使用してls-lプロセスの実行結果を読み取ることができます.
>>> res = fp.read()
//操作が完了したらfileのように閉じてpipeを閉じることができます
>>> stat = fp.close()
>>> print stat
None
fp.close() ls (process) ,None ( )
//ウェブページをキャプチャし、素拠を分析し、その基本的なデータ形式は以下の通りである.
<tr><td>Modu</td><td><span class="comments">90</span></td></tr>
<tr><td>Kenzie</td><td><span class="comments">88</span></td></tr>
<tr><td>Hubert</td><td><span class="comments">87</span></td></tr>
//spanタグの数字をつかみ、個数と総和を計算する
1 import urllib
2 from BeautifulSoup import *
3 url = raw_input("Enter -")
4 html = urllib.urlopen(url).read()
5 soup = BeautifulSoup(html)
6 sum = 0
7 count = 0
8 spans = soup("span")
9 for span in spans:
10 value = span.contents[0] // , span.attrs,
// span.get('class', None), , None
11 if value:
12 count +=1
13 sum +=int(value)
14 print("Count %s" % count)
15 print("Sum %s" % sum)
//URLを入力:http://python-data.dr-chuck.net/comments_217954.html、次のデータが得られます.
Enter - http://python-data.dr-chuck.net/comments_217954.html
Count 50
Sum 2591
//newList = [do something for variable in old list if condition]
1 mixedList = [1, 2, 3, 'a', 'b', 'c']
2 upperCaseList = [item.upper() for item in mixedList if isinstance(item, str)]
3 upperCaseList