初心者のプログラマーは、高度な Python 共通モジュールと使用方法の概要を習得する必要があります (内容はドライなので、収集することをお勧めします)。

多くの初心者プログラマーが Python を学ぶとき、Python のモジュールとライブラリーが多すぎるため、いつも頭痛の種になります。各モジュールの使い方は誰にも覚えられないので、よく使われるモジュールと使い方をまとめてみましたので、参考になれば幸いです!

特典の詳細は記事の最後(パイソン学習乾物まとめ)で、前回の記事の最後に:学生会特典!Pythonコンピュータを学び、大きなインベントリを構成し、ゲームと学習が正しい

目次

1.OSモジュール

2.シスモジュール

3. XPath モジュール

4. 再モジュール

5.パーセルモジュール

6. Urlparse モジュール

7.ソケットモジュール

8. ねじ切りモジュール

9. 型モジュール

10.セレンモジュール

11.パイゲームモジュール

12、でこぼこ

13・パンダ

14、お願い

15、美しいスープ


1.OSモジュール

OS モジュールは、オペレーティング システム機能への便利なアクセスを提供します。

OS共通メソッド(一部):

os.remove() はファイルを削除します

os.unlink() はファイルを削除します

os.rename() はファイルの名前を変更します

os.listdir() は、指定されたディレクトリ内のすべてのファイルを一覧表示します

os.getcwd() 現在のファイル パスを取得する

os.mkdir() 新しいディレクトリを作成します

os.rmdir() 空のディレクトリを削除 (空でないディレクトリを削除、shutil.rmtree() を使用)

os.makedirs() 複数レベルのディレクトリを作成する

os.system() オペレーティング システム コマンドの実行

os.execvp() は新しいプロセスを開始します

os.execvp() 外部プログラムスクリプトの実行 (Uinx)


2.シスモジュール

SYS モジュールは、インタープリターによって使用または維持される変数にアクセスするため、およびインタープリターと対話するための関数を提供します。

簡単に言えば、os はプログラムとオペレーティング システム間の対話を担当し、プログラムがオペレーティング システムの最下層にアクセスするためのインターフェイスを提供します。sys は主に、プログラムと python パーサー間の交換を担当します。 pyhton の動作環境を制御するための一連の関数と変数。

システムの一般的な方法:

sys.argv コマンド ライン パラメータ リスト。最初の要素はプログラム自体のパスです

sys.modules.keys() は、インポートされたすべてのモジュールのリストを返します

sys.exit(n) プログラムを終了、正常終了時は exit(0)

sys.version Python インタープリターのバージョン情報を取得します

sys.platform は、オペレーティング システムのプラットフォーム名を返します。

sys.stdout 標準出力

sys.stdout.writelines() 改行出力なし

sys.stdin 標準入力

sys.stdin.read() 一行入力

sys.stderr エラー出力

sys.executable Python インタープリターのパス

sys.getwindowsversion() Windows のバージョンを取得する

3. XPath モジュール

XML ドキュメント内の情報を検索するための言語である XPath には、関数の標準ライブラリが含まれています。つまり、xpath は、xml ドキュメント内のパスに基づいて要素を検索するための構文です。

xpath の一般的な用語:

要素: ドキュメント ツリーのタグは要素です。

ノード: xml ドキュメント ツリーの特定の位置を示します。たとえば、/ はドキュメント ツリーの開始位置を表すルート ノードを表し、要素は特定の位置のノードと見なすこともできます。

属性: <title lang="eng">Harry Potter</title> の lang は、特定のノードの属性です。

テキスト: <title lang="eng">Harry Potter</title> の Harry Potter がテキストです。

4. 再モジュール

正規表現 (英語: 正規表現、しばしば regex、regexp、または RE と略される) は、正規表現、正規表現、正規表現、および正規表現とも呼ばれ、コンピューター サイエンスの概念です。正規表現は、単一の文字列を使用して、特定の構文規則を満たす一連の文字列を記述および照合します。多くのテキスト エディタでは、通常、特定のパターンに一致するテキストを取得して置換するために正規表現が使用されます. つまり、正規表現は特殊文字を使用して特定のテキストに一致し、データを抽出します.

正規表現の一般的な構文について: (一部)

'^' 匹配字符串开头

‘$’ 匹配结尾

'\d' 匹配数字,等于[0-9] re.findall('\d','电话:10086')结果['1', '0', '0', '8', '6']

'\D' 匹配非数字,等于[^0-9] re.findall('\D','电话:10086')结果['电', '话', ':']

'\w' 匹配字母和数字,等于[A-Za-z0-9] re.findall('\w','alex123,./;;;')结果['a', 'l', 'e', 'x', '1', '2', '3']

'\s' 匹配空白字符 re.findall('\s','3*ds \t\n')结果[' ', '\t', '\n']

'\S' 匹配非空白字符 re.findall('\s','3*ds \t\n')结果['3', '*', 'd', 's']

'\A' 匹配字符串开头

'\Z' 匹配字符串结尾

'\b' 匹配单词的词首和词尾,单词被定义为一个字母数字序列,因此词尾是用空白符或非字母数字符来表示的

'\B' 与\b相反,只在当前位置不在单词边界时匹配

5.パーセルモジュール

パーサーモジュールはpythonのサードパーティライブラリとしてよく知られており、その機能や機能はコレクション版のcssセレクター、xpath、reと同等です。BeautifulSoup、xpath などの他の解析モジュールと比較して、パーサーはより効率的で使いやすいです。

import requests

import parsel response = requests.get(url)

sel = parsel.Selector(response.text)  #注意这里的S要大写 # re正则

# print(sel.re('正则匹配格式')) # xpath

# print(sel.xpath('xpath').getall()) #getall获取所有 # css选择器

# print(sel.css('css选择器 ::text').extract_first())#获取第一个

6. Urlparse モジュール

urlparse モジュールは、主に URL のパラメーターを解析し、特定の形式に従って URL を分割または接合するために使用されます。urlparse このモジュールは、python 3.0 で urllib.parse に名前が変更されました。

サードパーティ モジュールである Urlparse には、urljoin、urlsplit、urlunsplit、urlparse などの関数が含まれています。

たとえば、urlparse.urlparse:

URL を 6 つの部分に分解し、プロトコル、ベース アドレス、相対アドレスなどを含むタプルを返します。

import urlparse

url = urlparse.urlparse('http://blog.csdn.net/?ref=toolbar')

print url

出力は次のとおりです。

ParseResult(scheme='http', netloc='blog.csdn.net', path='/', params='', query='ref=toolbar', fragment='')

scheme はプロトコル、netloc はサーバー アドレス、path は相対パス、params はパラメーター、query はクエリ条件です。

サーバーのアドレスがわかっている場合は、サーバーのアドレスをベース アドレスとして使用して、他の相対パスをつなぎ合わせて新しい URL を形成できます。

7.ソケットモジュール

「ソケット」とも呼ばれるソケットは、IP アドレスとポートを記述するために使用され、通信の終点です。

Socket は Unix 発祥であり、Unix/Linux の基本理念の 1 つである「すべてはファイル」であり、ファイルの場合は [開く] [読み書き] [閉じる] モードで操作します。ソケットはこのモードの実装であり、ソケットは特別なファイルであり、いくつかのソケット関数はそれに対する操作です (読み取り/書き込み IO、オープン、クローズ)

ソケットとファイルの違い:

ファイルモジュールは、指定されたファイルを[開く][読み取りと書き込み][閉じる]

ソケット モジュールは、サーバー側とクライアント側のソケットに対して [開く] [読み取りと書き込み] [閉じる] です。

8. ねじ切りモジュール

このモジュールは、下位レベルのスレッド モジュールの上に上位レベルのスレッド インターフェイスを構築します。mutex および Queue モジュールも参照してください。

Hreading はスレッド モジュールよりも高レベルの API を提供し、スレッドの同時実行性を提供します。これらのスレッドは同時に実行され、メモリを共有します。

threading モジュールの特定の使用法を見てみましょう。

Thread を使用すると、ターゲット関数は Thread オブジェクトをインスタンス化でき、各 Thread オブジェクトはスレッドを表し、start() メソッドを通じて実行を開始できます。

マルチスレッド同時実行を使用する場合と、マルチスレッド同時実行を適用しない場合の比較を次に示します。

1 つ目は、マルチスレッドを使用しない操作です。

コードは以下のように表示されます:

#!/usr/bin/python

#compare for multi threads

import time

def worker():

    print "worker"

    time.sleep(1)

    return

if __name__ == "__main__":

    for i in xrange(5):

        worker()

次の操作は、複数のスレッドを使用して同時に実行されます。

コードは以下のように表示されます:

#!/usr/bin/python

import threading

import time

def worker():

    print "worker"

    time.sleep(1)

    return

for i in xrange(5):

    t = threading.Thread(target=worker)

    t.start()

マルチスレッドの同時操作を使用すると、時間が大幅に短縮されることがはっきりとわかります。

9. 型モジュール

タイプは何ですか:

types モジュールには、IntType (整数)、FloatType (浮動小数点) など、Python のさまざまな一般的なデータ型が含まれています。

型の一般的な使用法:

# 100是整型吗?

>>> isinstance(100, types.IntType)

True

>>>type(100)

int

# 看下types的源码就会发现types.IntType就是int

>>> types.IntType is int

True


但有些类型并不是int这样简单的数据类型:

class Foo:

    def run(self):

        return None

def bark(self):

    print('barking')

a = Foo()

print(type(1))

print(type(Foo))

print(type(Foo.run))

print(type(Foo().run))

print(type(bark))

出力結果:

<class 'int'>

<class 'type'>

<class 'function'>

<class 'method'>

<class 'function'>

10.セレンモジュール

Selenium はもともと自動テスト ツールであり、主にリクエストが JavaScript コードを直接実行できないという問題を解決するためにクローラーで使用されていました。

Selenium の本質は、ブラウザーを駆動して、ジャンプ、入力、クリック、ドロップダウンなどのブラウザーの操作を完全にシミュレートし、Web ページがレンダリングされた後に結果を取得し、複数のブラウザーをサポートできるようにすることです。

from selenium import webdriver

browser=webdriver.Chrome()

browser=webdriver.Firefox()

browser=webdriver.PhantomJS()

browser=webdriver.Safari()

browser=webdriver.Edge()



from selenium import webdriver

from selenium.webdriver import ActionChains

from selenium.webdriver.common.by import By #按照什么方式查找,By.ID,By.CSS_SELECTOR

from selenium.webdriver.common.keys import Keys #键盘按键操作

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.support.wait import WebDriverWait #等待页面加载某些元素


browser=webdriver.Chrome()


try:

    browser.get('https://www.baidu.com')


    input_tag=browser.find_element_by_id('kw')

    input_tag.send_keys('美女') #python2中输入中文错误,字符串前加个u

    input_tag.send_keys(Keys.ENTER) #输入回车


    wait=WebDriverWait(browser,10)

    wait.until(EC.presence_of_element_located((By.ID,'content_left'))) #等到id为content_left的元素加载完毕,最多等10秒


    print(browser.page_source)

    print(browser.current_url)

    print(browser.get_cookies())


finally:

    browser.close()

11.パイゲームモジュール

シンプルなゲーム開発関数ライブラリです

Python でゲームを開発するには、通常 pygame モジュールが使用されます。

pygame モジュールの概要:

モジュール

効果

のCD-ROM

CD-ROM デバイスとオーディオ再生の管理

カーソル

標準カーソルを含むカーソル画像をロードする

画面

コントロールディスプレイウィンドウまたはスクリーン

描く

表面に単純な形状を描く

イベント

イベントとイベント キューを管理する

フォント

Truetype フォントの作成とレンダリング

画像

画像の保存と読み込み

ジョイスティック

管理ジョイスティック デバイス

キーボードを管理する

ねずみ

マウスの管理

映画

mpeg ムービーの再生

sndarray

デジタル処理されたサウンド

サーフアレイ

デジタル処理された画像

時間

制御時間

変身

画像の拡大縮小、回転、反転

12、うるさい

NumPy (Numerical Python) は、多数の次元配列と行列演算をサポートする Python 用の拡張プログラム ライブラリであり、配列演算用の多数の数学関数ライブラリも提供します。Nupmy を使用して大きな行列を格納および処理できます。これは、Python 独自のネストされたリスト構造 (行列を表すためにも使用できます) よりもはるかに効率的です。NumPy は、同等の Python をより強力な MatLab システムに無料で変えると言われています。

NumPy は非常に高速な数学ライブラリで、主に次のような配列計算に使用されます。

強力な N 次元配列オブジェクト ndarray

ブロードキャスト機能

C/C++/Fortran コードを統合するためのツール

線形代数、フーリエ変換、乱数生成などの関数

NumPy の最も重要なオブジェクトの 1 つは N 次元配列オブジェクト ndarray です。これは同じ型のデータのコレクションであり、コレクション内の項目には 0 から始まるインデックスを使用してアクセスできます。

ndarray オブジェクトは、同じ型の要素を格納するために使用される多次元配列です。ndarray の各要素は、メモリ内の同じサイズのチャンクを使用します。ndarray の各要素は、データ型オブジェクト (dtype と呼ばれる) のオブジェクトです。

numpy.array( object , dtype = None , ndmin = 0 ,copy = True , order = None , subok = False )

 通常、object、dtype、および ndmin パラメータのみが一般的に使用され、その他のパラメータは一般的に使用されません。

13、パンダ

pandas は、データ分析タスクを解決するために作成された NumPy ベースのツールです。Pandas には多数のライブラリといくつかの標準データ モデルが組み込まれており、大規模なデータセットを効率的に操作するために必要なツールを提供します。pandas は、データを迅速かつ簡単に処理できるようにする多数の関数とメソッドを提供します。すぐにわかるように、これが Python を強力で効率的なデータ分析環境にしている要因の 1 つです。

一般的なデータ型:

 Series (Numpy の 1 次元配列に似た 1 次元配列。この 2 つは、Python の基本的なデータ構造 List にも非常に似ています。Series は、さまざまなデータ型、文字列、ブール値、数値などを格納できるようになりました。シリーズ中盤)

 DataFrame (2 次元の表形式のデータ構造。多くの関数は R の data.frame に似ています。DataFrame は Series のコンテナーとして理解できます。)

パネル (DataFrame コンテナーとして理解できる 3 次元配列) …

14、お願い

requests は、Apache2 ライセンスの下でライセンスされた HTTP ライブラリです。Python で書かれており、urllib2 モジュールよりも簡潔です。

Request は、HTTP 接続の保持と接続プーリング、Cookie を使用したセッションの保持、ファイルのアップロード、自動応答コンテンツのエンコード、および国際化された URL と POST データの自動エンコードをサポートしています。

高度なカプセル化は python の組み込みモジュールに基づいて実行されるため、ネットワーク リクエストを作成するときに python が人間化されます. Requests を使用すると、ブラウザが実行できるすべての操作を簡単に完了することができます. クローラー用の共通モジュールです!

http のさまざまなリクエスト タイプに対応して、リクエスト ライブラリにはさまざまなメソッドがあります。

1.requests.get():

HTTP の GET に対応する、HTML Web ページを取得する主な方法

2.requests.post():

HTTP POST に対応する、HTML Web ページに POST リクエストを送信する方法

3.requests.head():

HTTPのHEADに相当する、HTML Webページのヘッダ情報を取得するメソッド

4.requests.put():

HTTP の PUT に対応する PUT リクエストを HTML ページに送信します。

5.requests.patch():

HTTP PATCH に対応する、部分的な変更要求を HTML Web ページに送信します。

6.requests.delete():

HTTP DELETE に対応する HTML ページに削除要求を送信します。

15、美しいスープ

HTML および XML 解析ライブラリである BeautifulSoup は Python のライブラリであり、主な機能は Web から必要なデータをクロールすることです。BeautifulSoup は、html をオブジェクトに解析して処理し、すべてのページを辞書または配列に変換します. 正規表現と比較して、処理プロセスを大幅に簡素化できます.

基本的な使い方:

from bs4 import BeautifulSoup

import requests, re


req_obj = requests.get('https://www.baidu.com')

soup = BeautifulSoup(req_obj.text, 'lxml')


'''标签查找'''

print(soup.title)  # 只是查找出第一个

print(soup.find('title'))  # 效果和上面一样

print(soup.find_all('div'))  # 查出所有的div标签


'''获取标签里的属性'''

tag = soup.div

print(tag['class'])  # 多属性的话,会返回一个列表

print(tag['id'])  # 查找标签的id属性

print(tag.attrs)  # 查找标签所有的属性,返回一个字典(属性名:属性值)


'''标签包的字符串'''

tag = soup.title

print(tag.string)  # 获取标签里的字符串

tag.string.replace_with("哈哈")  # 字符串不能直接编辑,可以替换


'''子节点的操作'''

tag = soup.head

print(tag.title)  # 获取head标签后再获取它包含的子标签


'''contents 和 .children'''

tag = soup.body

print(tag.contents)  # 将标签的子节点以列表返回

print([child for child in tag.children])  # 输出和上面一样


'''descendants'''

tag = soup.body

[print(child_tag) for child_tag in tag.descendants]  # 获取所有子节点和子子节点


'''strings和.stripped_strings'''

tag = soup.body

[print(str) for str in tag.strings]  # 输出所有所有文本内容

[print(str) for str in tag.stripped_strings]  # 输出所有所有文本内容,去除空格或空行


'''.parent和.parents'''

tag = soup.title

print(tag.parent)  # 输出便签的父标签

[print(parent) for parent in tag.parents]  # 输出所有的父标签



'''.next_siblings 和 .previous_siblings

    查出所有的兄弟节点

'''

'''.next_element 和 .previous_element

    下一个兄弟节点

'''

'''find_all的keyword 参数'''

soup.find_all(id='link2')  # 查找所有包含 id 属性的标签

soup.find_all(href=re.compile("elsie"))  # href 参数,Beautiful Soup会搜索每个标签的href属性:

soup.find_all(id=True)  # 找出所有的有id属性的标签

soup.find_all(href=re.compile("elsie"), id='link1')  # 也可以组合查找

soup.find_all(attrs={"属性名": "属性值"})  # 也可以通过字典的方式查找

読者に感謝するために、最近のお気に入りのプログラミング ドライ グッズをいくつか紹介して、すべての読者にお返しし、お役に立てれば幸いです。ドライグッズの詳細は過去記事参照〜

  |学生会特典!学習 python コンピュータと構成のインベントリ、ゲームと学習は正しいです

おすすめ

転載: blog.csdn.net/Modeler_xiaoyu/article/details/119110957