>>> a = [('2011-03-17', '2.26' 、6429600、'0.0')、('2011-03-16'、'2.26'、12036900、'-3.0')、
('2011-03-15', '2.33', 15615500,'-19.1')]
>>> [0][0]
を印刷します
2011-03-17
>>> b =sorted(a, key=lambda result: result[1],reverse=True)
>>> プリント b
[('2011-03-15', '2.33', 15615500, '-19.1'), ('2011-03-17', '2.26', 6429600, '0.0'),
('2011-03-16', '2.26', 12036900, '-3.0')]
>>> c =sorted(a, key=lambda result: result[2],reverse=True)
>>> c
[('2011-03-15', '2.33', 15615500, '-19.1'), ('2011-03-16', '2.26', 12036900, '-3.0'),
('2011-03-17', '2.26', 6429600, '0.0')]
4. 固有のリストを表示します
リスト内の重複した要素を削除する必要がある場合は、次の方法を使用する必要があります
コードをコピー コードは次のとおりです:>>> lst= [(1,'sss'),(2,' fsdf') ,(1,'sss'),(3,'fd')]
>>> セット(最初)
set([(2, 'fsdf'), (3, 'fd'), (1, 'sss')])
>>>
>>> lst = [1, 1, 3, 4, 4, 5, 6, 7, 6]
>>> セット(最初)
set([1, 3, 4, 5, 6, 7])
5. 辞書ソート (辞書ソート)
一般的には辞書のキーに従ってソートしますが、辞書の値に従ってソートしたい場合は次の方法を使用します
コードをコピー コードは次のとおりです:>>> from オペレーター import itemgetter
>>> aa = {"a":"1","sss":"2","ffdf":'5',"ffff2":'3'}
>>> sort_aa = ソート(aa.items(),key=itemgetter(1))
>>> 並べ替え_aa
[('a', '1'), ('sss', '2'), ('ffff2', '3'), ('ffdf', '5')]
6. 辞書、リスト、文字列変換
以下は、辞書から文字列に変換された、生成されたデータベース接続文字列です。
コードをコピー コードは次のとおりです:>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}
>>> ["%s=%s" % (k, v) for k, v in params.items()]
['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
>>> ";".join(["%s=%s" % (k, v) for k, v in params.items()])
'server=mpilgrim;uid=sa;database=master;pwd=secret'
次の例では、文字列を辞書に変換します
コードをコピー コードは次のとおりです。
>>> a = 'server=mpilgrim;uid=sa;database=master; pwd=秘密 '
>>> aa = {}
>>> for i in a.split(';'):aa[i.split('=',1)[0]] = i.split('=',1)[1]
...
>>>ああ
{'pwd': 'secret', 'database': 'master', 'uid': 'sa', 'server': 'mpilgrim'}
7. 時間オブジェクトの操作
時刻オブジェクトを文字列に変換します
コードをコピー コードは次のとおりです:
>>> import datetime
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
'2011-01-20 14:05'
時間サイズの比較
コードをコピー コードは次のとおりです:
>>> インポート時間
>>> t1 = time.strptime('2011-01-20 14:05',"%Y-%m-%d %H:%M")
>>> t2 = time.strptime('2011-01-20 16:05',"%Y-%m-%d %H:%M")
>>>t1>t2
誤り
>>>t1
本当です
時差計算、8時間前の時刻を計算します
コードをコピー コードは次のとおりです:
>>> datetime.datetime.now().strftime("%Y-% m-% d %H:%M")
'2011-01-20 15:02'
>>> (datetime.datetime.now() - datetime.timedelta(hours=8)).strftime("%Y-%m-%d %H:%M")
「2011-01-20 07:03」
文字列を時間オブジェクトに変換
コードをコピー コードは次のとおりです:
>>> endtime=datetime.datetime.strptime('20100701',"%Y) %m% d")
>>> タイプ(終了時間)
<「日時.日時」と入力>
>>> 終了時刻を印刷
2010-07-01 00:00:00
1970-01-01 00:00:00 UTC から現在までの秒数 (フォーマットされた出力
)
コードをコピー コードは次のとおりです:
>>> インポート時間
>>> a = 1302153828
>>> time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(a))
'2011-04-07 13:23:48'
8. コマンドラインパラメータ分析 (getopt)
通常、日常的な運用およびメンテナンスのスクリプトを作成する場合、さまざまな機能を実現するには、さまざまな条件に応じてさまざまなコマンド ライン オプションを入力する必要があります
getopt モジュールは、以下で説明するように、コマンド ライン パラメーターの解析を実装するために Python で提供されています。以下の手順をご覧ください:
コードをコピー コードは次のとおりです:
#!/usr/bin/env python
# -*- コーディング: utf-8 -*-
インポート sys,os,getopt
def 使用法():
印刷「」」
使用法:analyze_stock.py [オプション...]
オプション:
-e : 交換名
-c : ユーザー定義のカテゴリ名
-f : ファイルから株式情報を読み取り、データベースに保存します
-d : 銘柄コードごとにデータベースから削除
-n : 銘柄名
-s : 銘柄コード
-h : このヘルプ情報
test.py -s はは -n "ははは"
''
試してください:
opts、args = getopt.getopt(sys.argv[1:],'he:c:f:d:n:s:')
getopt.GetoptError を除く:
使用法()
sys.exit()
if len(opts) == 0:
使用法()
sys.exit()
opt の場合、opts の引数:
オプトインする場合 ('-h', '--help'):
使用法()
sys.exit()
elif opt == '-d':
print "在庫 %s を削除" % arg
elif opt == '-f':
print "ファイル %s を読み取り" % arg
elif opt == '-c':
print "ユーザー定義 %s " % arg
elif opt == '-e':
print "Exchange 名 %s" % arg
elif opt == '-s':
print "銘柄コード %s" % arg
elif opt == '-n':
print "銘柄名 %s" % arg
sys.exit()
9. フォーマットされた出力を印刷します
9.1. フォーマットされた出力文字列
文字列出力をインターセプトします。次の例では、文字列の最初の 3 文字のみを出力します
コードをコピー コードは次のとおりです:
>>> str="abcdefg"
>>> "%.3s" % str
abc
固定幅に従って出力します。スペースを使用して欠点を補います。次の例の出力幅は 10
コードをコピーします コードは次のとおりです:
>>> str="abcdefg"
>>> "%10s" % str
abcdefg
文字列をインターセプトし、固定幅に従って出力します
コードをコピーします コードは次のとおりです:
>>> str="abcdefg"
>>> "%10.3s" % str
abc
浮動小数点型のデータビット数は予約されています
コードをコピー コードは次のとおりです。
>>> import fpformat
>>> a= 0.0030000000005
>>> b=fpformat.fix(a,6)
>>> プリント b
0.003000
浮動小数点数を丸めるには、主にround関数が使用されます
コードをコピー コードは次のとおりです:
>>> from 10 進数インポート *
>>> a ="2.26"
>>> b ="2.29"
>>> c = 10 進数 (a) - 10 進数 (b)
>>> c
-0.03
>>> c / 10 進数 (a) * 100
10 進数('-1.327433628318584070796460177')
>>> Decimal(str(round(c / Decimal(a) * 100, 2))
10 進数('-1.33')
9.2. ベース変換
場合によっては、異なる基数を変換する必要がある場合があります。次の例を参照してください (%x 16 進数、%d 10 進数、%o 10 進数)
コードをコピー コードは次のとおりです:
>>> num = 10
>>> print "16 進数 = %x,10 進数 = %d,10 進数 = %o" %(num,num,num)
16 進 = a、12 進 = 10、10 月 = 12
10. Python はシステムコマンドまたはスクリプトを呼び出します
os.system() を使用してシステムコマンドを呼び出すと、出力と戻り値はプログラム内で取得できません
コードをコピー コードは次のとおりです:
>>> import os
>>> os.system('ls -l /proc/cpuinfo')
>>> os.system("ls -l /proc/cpuinfo")
-r--r--r-- 1 ルート root 0 3 月 29 日 16:53 /proc/cpuinfo
0
os.popen()を使用してシステムコマンドを呼び出します。プログラム内でコマンドの出力は取得できますが、実行時の戻り値は取得できません
。
コードをコピーします コードは次のとおりです:
>>> out = os.popen("ls -l /proc/cpuinfo" )
>>> print out.read()
-r--r--r-- 1 ルート root 0 3 月 29 日 16:59 /proc/cpuinfo
コマンドの出力と実行の戻り値は、commands.getstatusoutput() を使用してシステムコマンドを呼び出します
で取得できます。
コードをコピー コードは次のとおりです。
>>> コマンドをインポートします
>>> コマンド.getstatusoutput('ls /bin/ls')
(0, '/bin/ls')
11. Python はユーザーの Ctrl+C、Ctrl+D イベントをキャプチャします
場合によっては、終了するための Ctrl+C など、プログラム内のユーザー キーボード イベントをキャプチャする必要があります。これにより、プログラムをより安全に終了できます
コードをコピー コードは次のとおりです:
try:
do_some_func()
キーボード割り込みを除く:
「ユーザーが Ctrl+C を押して終了」を印刷
EOFエラーを除く:
「ユーザーが Ctrl+D を押して終了」を印刷します
12. Python によるファイルの読み取りと書き込み
ファイルを一度にリストに読み込みます。これは高速であり、小さなファイルに適しています
コードをコピー コードは次のとおりです:
track_file = "track_stock.conf"
fd = open(トラックファイル)
content_list = fd.readlines()
fd.close()
content_list の行:
行を印刷
一行ずつ読むと遅いですが、ファイル全体を読み取るのに十分なメモリがない場合に適しています (ファイルが大きすぎます)
コードをコピー コードは次のとおりです:
fd = open(file_path)
fd.seek(0)
title = fd.readline()
キーワード = fd.readline()
uuid = fd.readline()
fd.close()
ファイルの書き込みと書き込み行の違い
Fd.write(str): str をファイルに書き込みます。write() は str
の後に改行文字を追加しません。
Fd.writelines(content): 各行の後に何も追加せずに、コンテンツのすべての内容をそのままファイルに書き込みます