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

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

Jun 16, 2016 am 08:43 AM
python

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

XMLをPDFに変換できるモバイルアプリはありますか? XMLをPDFに変換できるモバイルアプリはありますか? Apr 02, 2025 pm 08:54 PM

XMLをPDFに直接変換するアプリケーションは、2つの根本的に異なる形式であるため、見つかりません。 XMLはデータの保存に使用され、PDFはドキュメントを表示するために使用されます。変換を完了するには、PythonやReportLabなどのプログラミング言語とライブラリを使用して、XMLデータを解析してPDFドキュメントを生成できます。

XML形式を開く方法 XML形式を開く方法 Apr 02, 2025 pm 09:00 PM

ほとんどのテキストエディターを使用して、XMLファイルを開きます。より直感的なツリーディスプレイが必要な場合は、酸素XMLエディターやXMLSPYなどのXMLエディターを使用できます。プログラムでXMLデータを処理する場合、プログラミング言語(Pythonなど)やXMLライブラリ(XML.ETREE.ELEMENTTREEなど)を使用して解析する必要があります。

Protobufおよび関連文字列定数の列挙タイプを定義する方法は? Protobufおよび関連文字列定数の列挙タイプを定義する方法は? Apr 02, 2025 pm 03:36 PM

Protobufの文字列定数列挙を定義する問題Protobufを使用する場合、列挙タイプを文字列定数に関連付ける必要がある状況に遭遇することがよくあります...

XMLのコメントコンテンツを変更する方法 XMLのコメントコンテンツを変更する方法 Apr 02, 2025 pm 06:15 PM

小さなXMLファイルの場合、注釈コンテンツをテキストエディターに直接置き換えることができます。大きなファイルの場合、XMLパーサーを使用してそれを変更して、効率と精度を確保することをお勧めします。 XMLコメントを削除するときは注意してください。コメントを維持すると、通常、コードの理解とメンテナンスが役立ちます。高度なヒントは、XMLパーサーを使用してコメントを変更するためのPythonサンプルコードを提供しますが、特定の実装を使用するXMLライブラリに従って調整する必要があります。 XMLファイルを変更する際のエンコード問題に注意してください。 UTF-8エンコードを使用して、エンコード形式を指定することをお勧めします。

XMLの変更にはプログラミングが必要ですか? XMLの変更にはプログラミングが必要ですか? Apr 02, 2025 pm 06:51 PM

XMLコンテンツを変更するには、ターゲットノードの正確な検出が必要であるため、プログラミングが必要です。プログラミング言語には、XMLを処理するための対応するライブラリがあり、APIを提供して、データベースの運用などの安全で効率的で制御可能な操作を実行します。

推奨されるXMLフォーマットツール 推奨されるXMLフォーマットツール Apr 02, 2025 pm 09:03 PM

XMLフォーマットツールは、読みやすさと理解を向上させるために、ルールに従ってコードを入力できます。ツールを選択するときは、カスタマイズ機能、特別な状況の処理、パフォーマンス、使いやすさに注意してください。一般的に使用されるツールタイプには、オンラインツール、IDEプラグイン、コマンドラインツールが含まれます。

携帯電話用の無料のXMLからPDFツールはありますか? 携帯電話用の無料のXMLからPDFツールはありますか? Apr 02, 2025 pm 09:12 PM

モバイルには、単純で直接無料のXMLからPDFツールはありません。必要なデータ視覚化プロセスには、複雑なデータの理解とレンダリングが含まれ、市場のいわゆる「無料」ツールのほとんどは経験がありません。コンピューター側のツールを使用したり、クラウドサービスを使用したり、アプリを開発してより信頼性の高い変換効果を取得することをお勧めします。

携帯電話でXMLをPDFに変換するとき、変換速度は高速ですか? 携帯電話でXMLをPDFに変換するとき、変換速度は高速ですか? Apr 02, 2025 pm 10:09 PM

Mobile XMLからPDFへの速度は、次の要因に依存します。XML構造の複雑さです。モバイルハードウェア構成変換方法(ライブラリ、アルゴリズム)コードの品質最適化方法(効率的なライブラリ、アルゴリズムの最適化、キャッシュデータ、およびマルチスレッドの利用)。全体として、絶対的な答えはなく、特定の状況に従って最適化する必要があります。

See all articles