目次
1. sys モジュールの紹介
2. sys モジュールの一般的なメソッド
1.sys.argv - コマンド ライン パラメータの取得
3.sys.platform-获取当前Python运行平台
基本用法
适用场景
4.sys.path-返回Python相关路径
5.sys.stdin与sys.stdout
sys.stdin 与 input()
sys.stdout 与 print()
6 .sys モジュールのその他の使用方法
概要
ホームページ バックエンド開発 Python チュートリアル Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール

Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール

Apr 10, 2023 pm 02:56 PM
python モジュール 2-sys

1. sys モジュールの紹介

前に紹介した os モジュールは主にオペレーティング システム用ですが、この記事の sys モジュールは主に Python インタープリタ用です。

sys モジュールは Python に付属するモジュールで、Python インタープリタと対話するためのインターフェイスです。 sys モジュールは、Python ランタイム環境のさまざまな部分を処理するための多くの関数と変数を提供します。

2. sys モジュールの一般的なメソッド

dir() メソッドを通じて sys モジュールにどのメソッドが含まれているかを確認できます:

import sys

print(dir(sys))
ログイン後にコピー

Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール

1.sys.argv - コマンド ライン パラメータの取得

sys.argv は、プログラムの外部からプログラムにパラメータを転送するために使用され、コマンド ライン パラメータのリストを取得できます。 。 argv リストには、スクリプトに渡されるすべてのパラメータが含まれます。

  • sys.argv[0]: プログラム自体を表します。
  • sys.argv[1]: プログラムの最初のパラメータを表します。プログラム
  • sys.argv[2]: プログラムの 2 番目のパラメータを示します。
import sys

for index, arg in enumerate(sys.argv):
print(index, arg)
ログイン後にコピー

このスクリプト ファイルを Python コマンド ラインで (パラメータなしで) 実行し、2 番目のパラメータを取得します。パラメータ 1 つの要素はスクリプト自体です。出力結果は次のようになります。

Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール

#このスクリプト ファイル (パラメータ付き) を Python コマンド ラインで実行すると、取得される最初の要素がスクリプト自体になります。残りは渡されるパラメータです。出力結果は次のようになります。

Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール

#2.sys.exit(n) - プログラムを終了します

sys.exit() 基本原則

sys.exit(n):

    n が 0 の場合: 正常終了
  • n が 0 に等しくない場合、異常終了により SystemExit Exception がトリガーされます
通常の状況では、プログラムが最後まで実行されると、インタープリタは自動的に終了します。このとき、コード内では sys.exit(0) は呼び出されませんが、実際の Python インタープリターは実行時に sys.exit(0) を呼び出します。実行後、PyCharm エディターは自動的に「終了コード 0 でプロセスが終了しました」というプロンプトを表示します。

Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール

コード内で sys.exit(888) が呼び出されるとき、つまり 0 以外の整数が渡されるとき、 PyCharm エディターは、「プロセスは終了コード 888 で終了しました」というプロンプトは次のようになります。

Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール

そして、sys.exit(n) が呼び出されるとき、コードでは、n が 0 に等しいかどうか、つまり正常に終了したか異常終了したかに関係なく、プログラムが終了することを意味します。その後のステートメントは実行されません。つまり、文「print(」Python sys.exit () 使用例「)」は実行されません。また、以下の図から、sys.exit(888) 以降のステートメントが PyCharm エディターで黄色で強調表示されており (文法が正常であれば強調表示されません)、実行結果では sys ステートメントが実行されないことがわかります。 .exit(888) の後:

Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール

#sys.exit() 該当するシナリオ - 制御プログラムが途中で終了する

一般的な状況次に、実行がメインプログラムの最後に達すると、インタープリタは自動的に終了します。上記の例では、途中で終了する場合、最初に sys.exit() を呼び出してから他のステートメントを呼び出すと機能せず、エディターが警告することを示しています。

プログラムを途中で終了するかどうかを自由に制御したい場合は、「sys.exit(n) catchException」メソッドを使用できます。このうち、n には整数パラメータまたは文字列パラメータを指定できます。n が 0 以外の値の場合、SystemExit 例外がスローされ、メイン プログラムでキャプチャできます:

# sys.exit()用法示例
def exit_function(value):
print("sys.exit()捕获到的value是%s" % value)
sys.exit(0)


print("start sys")

try:
sys.exit(888)
except SystemExit as value:
exit_function(value=value)

print("end sys")
ログイン後にコピー

① プログラムの例途中で終了します

実行結果は次のとおりです:

Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール

実行プロセスの分析:

    プログラムは最初に print("start sys") を実行します。
  1. 次に、try ステートメントを実行し、sys.exit(888) を呼び出します。
  2. 次に、システム例外をキャプチャします。キャプチャされた SystemExit 例外の値は 888 です。
  3. 最後に exit_function 関数を呼び出し、値 888 を exit_function 関数に渡します。
  4. exit_function 関数でステートメントを実行し、取得した値を出力し、最後に sys.exit(0) を呼び出します。プログラムを終了する場合
② プログラムを終了しない場合の例

上个示例的执行结果可以看到在exit_function函数中调用sys.exit(0),此时程序就会退出,不会再执行print("end sys"),而当在exit_function函数中注释掉sys.exit(0),则会继续执行最后的代码print("end sys"),即:程序中途不退出,如下所示:

Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール

3.sys.platform-获取当前Python运行平台

基本用法

print(sys.platform)
ログイン後にコピー

Windows下运行:

Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール

Linux下运行:

Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール

除了sys.platform外,通过platform.system()也可以获取到当前系统平台:

Windows下运行:

Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール

Linux下运行:

Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール

适用场景

我们都知道Python是跨平台语言,只要操作系统安装了Python环境,那么同一份Python代码就可以既运行在Linux上,也可以运行在Windows上,亦或是Mac上。

而使用sys.platform或platform.system()获取到当前系统平台名称后,我们就可以针对性地作出不同操作,例如:

linux_content = "111111"
windows_content = "222222"

# 平台为Linux,执行逻辑1、发送文本1到指定邮件
if platform.system() == "Linux":
send_email(linux_content)
# 平台为Windows,执行逻辑2、发送文本2到指定邮件
elif platform.system() == "Windows":
send_email(windows_content)
ログイン後にコピー

4.sys.path-返回Python相关路径

基本用法

sys.path是Python的搜索模块的路径集,供Python从中查找模块,返回一个list。

print(sys.path)
ログイン後にコピー

Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール

适用场景

如果是在IDE中执行Python程序,编译器会自动把当前项目的根目录加入到包查找路径中,可以理解为添加到环境变量下,所以直接执行是没有问题的。但是在cmd或是Terminal控制台中直接使用Python相关命令来执行程序,则不会自动将当前项目加入到PYTHONPATH环境变量下,如果涉及到import其他文件夹下的变量就会报类似"ModuleNotFoundError: No module named 'xxxx'"这样的错误。

解决方法:通过sys.path.append()方法将当前项目的根目录添加到系统环境变量中:

import sys

root_path = os.path.dirname(os.path.realpath(__file__))
sys.path.append(root_path)
ログイン後にコピー

5.sys.stdin与sys.stdout

  • Stdin:标准输入
  • Stdout:标准输出
  • Stderr:错误流

sys.stdin 与 input()

在Python中, input() 等价于 sys.stdin.readline()

① 先来看看使用input()的实现效果

# sys.stdin 与 input
number = input("please input a number:")
print("your input number is %s" % (number))
ログイン後にコピー

执行效果如下:

Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール

② 再来看看使用sys.stdin.readline()的实现效果

print("please input a number:",)# 逗号表示不换行
nn = sys.stdin.readline()
print("your input number is %s" % (nn))
ログイン後にコピー

执行效果如下:

Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール

sys.stdout 与 print()

在Python中, print() 等价于 sys.stdout.readline()

① 先来看看使用print()的实现效果

# sys.stdout 与 print
print("hello world")
ログイン後にコピー

执行效果如下:

Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール

② 再来看看使用sys.stdin.write()的实现效果

sys.stdout.write("hello world")
ログイン後にコピー

执行效果如下:

Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール

所以综上所述,input()+print() 结合的代码语句即可使用sys.stdin.readline()+sys.stdin.write()代替,如下:

sys.stdout.write("please input a number: n")
number = sys.stdin.readline()
sys.stdout.write("your input number is %s" % number)
ログイン後にコピー

执行效果如下:

Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール

6 .sys モジュールのその他の使用方法

  • sys.version: Python インタープリターのバージョンを取得します
  • sys.exc_info(): 例外情報トリプレットを返します
  • sys.getdefaultencoding(): システムの現在のエンコーディングを取得します。デフォルトは utf-8です。
  • sys.setdefaultencoding(): システムのデフォルトのエンコーディングを設定します。
  • sys.getfilesystemencoding (): ファイル システムを取得します。エンコード方式を使用します。デフォルトは utf-8
  • sys.modules: 現在の Python 環境にインポートされたすべてのモジュールを辞書形式で返します。
  • sys .copyright: 現在の Python 著作権情報
  • sys.getrefcount(object): オブジェクトへの参照の数を返します
  • sys.getrecursionlimit(): Python の最大再帰深度を返します。デフォルトは 1000 です
  • sys.getsizeof(object[,default ]): オブジェクトのサイズを返します
  • sys.getwindowsversion(): 現在の Windows システムのバージョン情報を返します

概要

sys モジュールは Python に付属するモジュールで、主に Python インタープリターと対話するために使用されます。これには多くのメソッドまたは属性が付属しています。その中には次のものがあります。

1.sys.argv は、プログラムの外部からプログラムにパラメーターを転送するために使用され、コマンド ライン パラメーターのリストを取得できます。 argv リストには、スクリプトに渡されるすべてのパラメータが含まれます。

  • sys.argv[0]: プログラム自体を表します。
  • sys.argv[1]: プログラムの最初のパラメータを表します。プログラム
  • sys.argv[2]: プログラム
#2.sys.exit(n) の 2 番目のパラメータがプログラムを終了するために使用されることを示します:

    n が 0 の場合: 正常終了
  • n が 0 に等しくない場合、異常終了により SystemExit 例外が発生します
sys.exit(n) は SystemExit をキャプチャすることがよくあります。プログラムが途中で自由に終了するかどうかを制御する例外とともに、

3.sys.platform は、platform.system() と同様に、現在の Python 実行プラットフォームを取得するために使用され、さまざまなオペレーティング システムを対象とするためによく使用されます。 . 別の動作ロジックを作成します;

4.sys.path は Python の検索モジュールのパス セットです. sys.path.append() メソッドを通じて現在のプロジェクトのルート ディレクトリをシステム環境変数に追加します。モジュールが見つからないというエラー レポートを解決するには、

#5 を使用できます。Python では、input() は sys.stdin.readline() に相当し、print() は sys.stdout に相当します。 。読み込まれた行()。

以上がPython で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHPおよびPython:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPythonの選択:ガイド PHPとPythonの選択:ガイド Apr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

Python vs. JavaScript:学習曲線と使いやすさ Python vs. JavaScript:学習曲線と使いやすさ Apr 16, 2025 am 12:12 AM

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

Visual StudioコードはPythonで使用できますか Visual StudioコードはPythonで使用できますか Apr 15, 2025 pm 08:18 PM

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

Windows 8でコードを実行できます Windows 8でコードを実行できます Apr 15, 2025 pm 07:24 PM

VSコードはWindows 8で実行できますが、エクスペリエンスは大きくない場合があります。まず、システムが最新のパッチに更新されていることを確認してから、システムアーキテクチャに一致するVSコードインストールパッケージをダウンロードして、プロンプトとしてインストールします。インストール後、一部の拡張機能はWindows 8と互換性があり、代替拡張機能を探すか、仮想マシンで新しいWindowsシステムを使用する必要があることに注意してください。必要な拡張機能をインストールして、適切に動作するかどうかを確認します。 Windows 8ではVSコードは実行可能ですが、開発エクスペリエンスとセキュリティを向上させるために、新しいWindowsシステムにアップグレードすることをお勧めします。

PHPとPython:彼らの歴史を深く掘り下げます PHPとPython:彼らの歴史を深く掘り下げます Apr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

ターミナルVSCODEでプログラムを実行する方法 ターミナルVSCODEでプログラムを実行する方法 Apr 15, 2025 pm 06:42 PM

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。

VSCODE拡張機能は悪意がありますか? VSCODE拡張機能は悪意がありますか? Apr 15, 2025 pm 07:57 PM

VSコード拡張機能は、悪意のあるコードの隠れ、脆弱性の活用、合法的な拡張機能としての自慰行為など、悪意のあるリスクを引き起こします。悪意のある拡張機能を識別する方法には、パブリッシャーのチェック、コメントの読み取り、コードのチェック、およびインストールに注意してください。セキュリティ対策には、セキュリティ認識、良好な習慣、定期的な更新、ウイルス対策ソフトウェアも含まれます。

See all articles