Pythonの - >(9)の研究ノート

モジュール

モジュール

すべてのコードは、インタプリタを終了するときに失われているPythonインタプリタで書かれています。人々がコードになる傾向があるという大きなプログラムを書くときしかし、デバッグ、使用、および優れた可読性を持っているいくつかの異なるファイルに分割されます。Pythonのモジュールでは、これらの目標に到達するために使用します。

モジュールはPythonの定義とファイルのステートメントです。ファイル名とモジュール名である.pyサフィックス。

グローバル変数の可能な__name__モジュールモジュール名(文字列)を得ました。

今、モジュールがどのように機能するかを見てみましょう。作成しbars.pyたファイルを。次のようにドキュメントを読み取ります。

"""
Bars Module
============
这是一个打印不同分割线的示例模块
"""
def starbar(num):
    """打印 * 分割线

    :arg num: 线长
    """
    print('*' * num)

def hashbar(num):
    """打印 # 分割线

    :arg num: 线长
    """
    print('#' * num)

def simplebar(num):
    """打印 - 分割线

    :arg num: 线长
    """
    print('-' * num)

今インタプリタとインポートモジュールを起動します。

>>> import bars
>>>

あなたは、モジュール内の機能にアクセスするためにモジュール名を使用する必要があります。

>>> bars.hashbar(10)
##########
>>> bars.simplebar(10)
----------
>>> bars.starbar(10)
**********

インポートモジュール:インポートモジュールは、さまざまな方法があります。あなたは、指定された機能モジュールから導入してもよいです。

>>> from bars import simplebar, starbar
>>> simplebar(20)
--------------------

また、使用することができfrom module import *、すべてのインポートモジュールを定義するが、これはお勧めではありません。

パッケージ

含まれている__init__.pyファイルのディレクトリがパッケージとして使用することができ、内のすべてのディレクトリ.pyのファイルは、このパッケージのサブモジュールです
例では、最初に作成するmymoduleディレクトリを:

$ cd ~
$ mkdir mymodule

されbars.pyにコピーされたmymoduleディレクトリ、
使用touch作成するutils.pyファイルを、
使用することは、touch空の作成に__init__.pyファイルを。

その場合mymoduleでは__init__.py、ファイルは、以下のものが含まれています。

from mymodule.bars import simplebar
__all__ = [simplebar, ]

**だけにして、インポートに利用できるsimplebarます。**のpython3インタプリタのニーズにテストがされて決定されている場合mymodule、同じレベルのディレクトリのディレクトリで行われpython3、次のようなものは、それがにつながるImportError: No module named 'mymodule'のエラー。

$ cd /home/shiyanlou
$ python3
>>>

from mymodule import * オブジェクトモジュールレベルでのみ作業は、インポート機能やクラスにしようとすると、構文エラーが発生します。

デフォルトモジュール

Pythonは異なるモジュールをインストールしますインストールが付属して、彼らは必要に応じて、あなたはまた、他の特別な目的のために新しいモジュールをインストールすることができます使用することができます。
ここに画像を挿入説明
システム内にあるインストールされているすべてのモジュールのリストを取得する方法、上記の例が示します。

OSモジュール

osモジュールは、オペレーティングシステムに関連する機能を提供します。それは次のステートメントを使用することができますインポートします。

>>> import os

getuid()関数は、現在のプロセスの実効ユーザIDを返します。
getpid()この関数は、現在のプロセスのIDを返します。
getppid()親プロセスのIDを返します。

>>> os.getuid()
500
>>> os.getpid()
16150
>>> os.getppid()
14847

uname()異なるオペレーティングシステムを特定する機能情報を返しますが、Linuxではその詳細がから返される可能性がuname -a取得したコマンド。uname()これは、オブジェクトがタプル(ある返しますsysname, nodename, release, version, machine)

>>> os.uname()
('Linux', 'd80', '2.6.34.7-56.fc13.i686.PAE', '#1 SMP Wed Sep 15 03:27:15 UTC 2010', 'i686')

getcwd()関数は、現在の作業ディレクトリを返します。chdir(path)これは、カレントディレクトリを変更することですpath最初の例では、現在の作業ディレクトリが表示さ/home/zhangsanれ、その後、我々は現在の作業ディレクトリに変更/Codeし、再び現在の作業ディレクトリを表示します。

>>> os.getcwd()
'/home/zhangsan'
>>> os.chdir('Code')
>>> os.getcwd()
'/home/zhangsan/Code'

今では、与えられたディレクトリ内のすべてのファイルとディレクトリの一覧が表示されます、独自の機能を作成するために、osモジュール内の他の関数を使用します。

def view_dir(path='.'):
    """
    这个函数打印给定目录中的所有文件和目录
    :args path: 指定目录,默认为当前目录
    """
    names = os.listdir(path)
    names.sort()
    for name in names:
        print(name, end =' ')
    print()

使用view_dir()関数の例:

>>> view_dir('/')
.bashrc .dockerenv .profile bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
要求モジュール

要求は次のようにその公式サイトを紹介し、サードパーティのPythonモジュールです。唯一の非トランスジェニックPythonのHTTPライブラリリクエストを、人間が安全に楽しむことができます。

サードパーティのモジュールを使用してそれをインストールする必要があることを意味デフォルトモジュール、ではないpip3それをインストール。

まず第一に、あなたがインストールしたいですpip3

$ sudo apt-get update
$ sudo apt-get install python3-pip

その後、pip3インストールrequests

$ sudo pip3 install requests

上記のコマンドは、システムの要求モジュールののpython3バージョンをインストールします。

あなたは使用することができますget()いずれかのページを取得する方法を

>>> import requests
>>> req = requests.get('https://github.com')
>>> req.status_code
200

reqtextプロパティがサーバーには、HTMLページを返します。

例では、ファイルを書き込むためにこの知識を使用するプログラムで指定されたURLからダウンロードすることができます。

#!/usr/bin/env python3
import requests

def download(url):
    '''
    从指定的 URL 中下载文件并存储到当前目录
    url: 要下载页面内容的网址
    '''
    # 检查 URL 是否存在
    try:
        req = requests.get(url)
    except requests.exceptions.MissingSchema:
        print('Invalid URL "{}"'.format(url))
        return
    # 检查是否成功访问了该网站
    if req.status_code == 403:
        print('You do not have the authority to access this page.')
        return
    filename = url.split('/')[-1]
    with open(filename, 'w') as fobj:
        fobj.write(req.content.decode('utf-8'))
    print("Download over.")

if __name__ == '__main__':
    url = input('Enter a URL: ')
    download(url)

各モジュールパイソン(download.pyここでPythonのファイルは、)組み込み変数含ま__name__モジュールを直接実行された場合、__name__モジュールの場合、ファイル名に等しい(拡張子の.pyを含む)import他のモジュールに、モジュールは、__name__モジュール名(NOサフィックスの.py)に等しいです。__main__」常には(サフィックスの.pyを含む)現在実行中のモジュールの名前を指します。モジュールが直接実行されたときに、さらに、__name__ == 'main'結果は真です。
if __name__ == '__main__':呼ばれる:このステートメントは、その役割は、現在のモジュール(ここではdownload.pyであるPythonのファイル、モジュール)である__main__ブロック(すなわち、スクリプトが実行された場合など)場合は文が、この内で実行されるまでの時間。ブロックが実行されない場合は、他の言葉では、ときに、このファイルは声明の中で、モジュールの形で別の文書にインポートされます。

argparseコマンドラインパラメータの処理モジュール

ここでは、モジュールが使用されているsys、コマンドラインはすべてのパラメータを使用することができ渡されsys.argv得ることが、あなたが使用できるパラメータに対処したい場合はargparse、モジュールを。

TAB補完

まず、ファイルを作成します~/.pythonrc、文書で次のように書きます。

import rlcompleter, readline
readline.parse_and_bind('tab: complete')


history_file = os.path.expanduser('~/.python_history')
readline.read_history_file(history_file)

import atexit
atexit.register(readline.write_history_file, history_file)

次のステップ~/.bashrcの設定ファイルのPYTHONSTARTUP環境変数は、このファイルを指すように:

$ export PYTHONSTARTUP=~/.pythonrc

さて、今からあなたはbashシェルを開くたびに、あなたは、入力されたフルTAB補完歴史とPythonインタプリタのコードを持っています。

現在のシェルで使用するには、bashrcにファイルをソース。

$ source ~/.bashrc

ソース

公開された33元の記事 ウォンの賞賛1 ビュー1242

おすすめ

転載: blog.csdn.net/weixin_44783002/article/details/104635282