Python言語の基礎知識12項目まとめ
Python プログラミングで一般的に使用される 12 の基礎知識のまとめ: 正規表現置換、ディレクトリ トラバーサル方法、列によるリストの並べ替え、重複排除、辞書の並べ替え、辞書、リスト、文字列の変換、時間オブジェクトの操作、コマンド ライン パラメータの解析 (getopt) )、印刷形式の出力、16 進数変換、Python によるシステム コマンドまたはスクリプトの呼び出し、Python によるファイルの読み取りと書き込み。
1. 正規表現置換
目標: 文字列行のoverview.gifを他の文字列に置き換えます
>>> mo=re.compile(r'(?
>>>gt;>mo.sub(r'"1****"',line)
'
>>> mo.sub(r'replace_str_1',line)
'
'
注: 1 は一致したデータであり、この方法で直接参照できます
2. ディレクトリトラバーサル方法
ある時点で、特定のファイル リストを見つけるためにディレクトリを移動する必要がありますが、os.walk メソッドを使用すると非常に便利です。
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) に並べ替えます
>>> [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. 固有のリストを表示します
リスト内の重複した要素を削除する必要がある場合は、次の方法を使用する必要があります
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. 辞書ソート (辞書ソート)
一般的には辞書のキーに従ってソートしますが、辞書の値に従ってソートしたい場合は次の方法を使用します
>>> sort_aa = ソート(aa.items(),key=itemgetter(1))
>>> 並べ替え_aa
[('a', '1'), ('sss', '2'), ('ffff2', '3'), ('ffdf', '5')]
6. 辞書、リスト、文字列変換
以下は、辞書から文字列に変換された、生成されたデータベース接続文字列です。
>>> ["%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'
次の例では、文字列を辞書に変換します
>>> aa = {}
>>> for i in a.split(';'):aa[i.split('=',1)[0]] = i.split('=',1)[1]
...
>>>ああ
{'pwd': 'secret', 'database': 'master', 'uid': 'sa', 'server': 'mpilgrim'}
7. 時間オブジェクトの操作
時刻オブジェクトを文字列に変換します
>>> 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時間前の時刻を計算します
'2011-01-20 15:02'
>>> (datetime.datetime.now() - datetime.timedelta(hours=8)).strftime("%Y-%m-%d %H:%M")
「2011-01-20 07:03」
文字列を時間オブジェクトに変換
>>> タイプ(終了時間)
<「日時.日時」と入力>
>>> 終了時刻を印刷
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 で提供されています。以下の手順をご覧ください:
# -*- コーディング: 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 文字のみを出力します
>>> "%.3s" % str
abc
固定幅に従って出力します。スペースを使用して欠点を補います。次の例の出力幅は 10
>>> "%10s" % str
abcdefg
文字列をインターセプトし、固定幅に従って出力します
>>> "%10.3s" % str
abc
浮動小数点型のデータビット数は予約されています
>>> a= 0.0030000000005
>>> b=fpformat.fix(a,6)
>>> プリント b
0.003000
浮動小数点数を丸めるには、主にround関数が使用されます
>>> 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 進数)
>>> print "16 進数 = %x,10 進数 = %d,10 進数 = %o" %(num,num,num)
16 進 = a、12 進 = 10、10 月 = 12
10. Python はシステムコマンドまたはスクリプトを呼び出します
os.system() を使用してシステムコマンドを呼び出すと、出力と戻り値はプログラム内で取得できません
>>> 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()を使用してシステムコマンドを呼び出します。プログラム内でコマンドの出力は取得できますが、実行時の戻り値は取得できません
。
>>> 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 など、プログラム内のユーザー キーボード イベントをキャプチャする必要があります。これにより、プログラムをより安全に終了できます
do_some_func()
キーボード割り込みを除く:
「ユーザーが Ctrl+C を押して終了」を印刷
EOFエラーを除く:
「ユーザーが Ctrl+D を押して終了」を印刷します
12. Python によるファイルの読み取りと書き込み
ファイルを一度にリストに読み込みます。これは高速であり、小さなファイルに適しています
fd = open(トラックファイル)
content_list = fd.readlines()
fd.close()
content_list の行:
行を印刷
一行ずつ読むと遅いですが、ファイル全体を読み取るのに十分なメモリがない場合に適しています (ファイルが大きすぎます)
fd.seek(0)
title = fd.readline()
キーワード = fd.readline()
uuid = fd.readline()
fd.close()
ファイルの書き込みと書き込み行の違い
Fd.write(str): str をファイルに書き込みます。write() は str
の後に改行文字を追加しません。
Fd.writelines(content): 各行の後に何も追加せずに、コンテンツのすべての内容をそのままファイルに書き込みます

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











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

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

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

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

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

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

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

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