ホームページ > バックエンド開発 > Python チュートリアル > Python言語の基礎知識12項目まとめ

Python言語の基礎知識12項目まとめ

WBOY
リリース: 2016-06-16 08:43:20
オリジナル
1188 人が閲覧しました

Python プログラミングで一般的に使用される 12 の基礎知識のまとめ: 正規表現置換、ディレクトリ トラバーサル方法、列によるリストの並べ替え、重複排除、辞書の並べ替え、辞書、リスト、文字列の変換、時間オブジェクトの操作、コマンド ライン パラメータの解析 (getopt) )、印刷形式の出力、16 進数変換、Python によるシステム コマンドまたはスクリプトの呼び出し、Python によるファイルの読み取りと書き込み。

1. 正規表現置換

目標: 文字列行のoverview.gifを他の文字列に置き換えます

コードをコピー コードは次のとおりです:
>>> line = ''
>>> mo=re.compile(r'(?

>>>gt;>mo.sub(r'"1****"',line)
'

>>> mo.sub(r'replace_str_1',line)
'

>>> mo.sub(r'"testetstset"',line)

'

注: 1 は一致したデータであり、この方法で直接参照できます

2. ディレクトリトラバーサル方法

ある時点で、特定のファイル リストを見つけるためにディレクトリを移動する必要がありますが、os.walk メソッドを使用すると非常に便利です


コードをコピー コードは次のとおりです:import os
fileList = []
rootdir = "/data"
os.walk(rootdir) 内のルート、サブフォルダー、ファイルの場合:
if '.svn' in subFolders: subFolders.remove('.svn') # 特定のディレクトリを除外します
ファイル内のファイルの場合:
if file.find(".t2t") != -1:# 特定の拡張子を持つファイルを検索します
File_dir_path = os.path.join(root,file)
fileList.append(file_dir_path)
ファイルリストを印刷

3. リストの並べ替え

リストの各要素がタプルの場合、タプルの特定の列に従って並べ替える必要があります。次のメソッドを参照してください。

次の例では、タプルの 2 列目と 3 列目のデータに従って、逆順 (reverse=True) に並べ替えます

コードをコピー コードは次のとおりです:>>> 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): 各行の後に何も追加せずに、コンテンツのすべての内容をそのままファイルに書き込みます

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート