ホームページ >バックエンド開発 >Python チュートリアル >Python で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュール
前に紹介した os モジュールは主にオペレーティング システム用ですが、この記事の sys モジュールは主に Python インタープリタ用です。
sys モジュールは Python に付属するモジュールで、Python インタープリタと対話するためのインターフェイスです。 sys モジュールは、Python ランタイム環境のさまざまな部分を処理するための多くの関数と変数を提供します。
dir() メソッドを通じて sys モジュールにどのメソッドが含まれているかを確認できます:
import sys print(dir(sys))
sys.argv は、プログラムの外部からプログラムにパラメータを転送するために使用され、コマンド ライン パラメータのリストを取得できます。 。 argv リストには、スクリプトに渡されるすべてのパラメータが含まれます。
import sys for index, arg in enumerate(sys.argv): print(index, arg)
このスクリプト ファイルを Python コマンド ラインで (パラメータなしで) 実行し、2 番目のパラメータを取得します。パラメータ 1 つの要素はスクリプト自体です。出力結果は次のようになります。
#このスクリプト ファイル (パラメータ付き) を Python コマンド ラインで実行すると、取得される最初の要素がスクリプト自体になります。残りは渡されるパラメータです。出力結果は次のようになります。
#2.sys.exit(n) - プログラムを終了しますsys.exit() 基本原則sys.exit(n):# 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")① プログラムの例途中で終了します実行結果は次のとおりです: 実行プロセスの分析:
上个示例的执行结果可以看到在exit_function函数中调用sys.exit(0),此时程序就会退出,不会再执行print("end sys"),而当在exit_function函数中注释掉sys.exit(0),则会继续执行最后的代码print("end sys"),即:程序中途不退出,如下所示:
print(sys.platform)
Windows下运行:
Linux下运行:
除了sys.platform外,通过platform.system()也可以获取到当前系统平台:
Windows下运行:
Linux下运行:
我们都知道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)
sys.path是Python的搜索模块的路径集,供Python从中查找模块,返回一个list。
print(sys.path)
如果是在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)
在Python中, input() 等价于 sys.stdin.readline()
① 先来看看使用input()的实现效果
# sys.stdin 与 input number = input("please input a number:") print("your input number is %s" % (number))
执行效果如下:
② 再来看看使用sys.stdin.readline()的实现效果
print("please input a number:",)# 逗号表示不换行 nn = sys.stdin.readline() print("your input number is %s" % (nn))
执行效果如下:
在Python中, print() 等价于 sys.stdout.readline()
① 先来看看使用print()的实现效果
# sys.stdout 与 print print("hello world")
执行效果如下:
② 再来看看使用sys.stdin.write()的实现效果
sys.stdout.write("hello world")
执行效果如下:
所以综上所述,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)
执行效果如下:
sys モジュールは Python に付属するモジュールで、主に Python インタープリターと対話するために使用されます。これには多くのメソッドまたは属性が付属しています。その中には次のものがあります。
1.sys.argv は、プログラムの外部からプログラムにパラメーターを転送するために使用され、コマンド ライン パラメーターのリストを取得できます。 argv リストには、スクリプトに渡されるすべてのパラメータが含まれます。
#5 を使用できます。Python では、input() は sys.stdin.readline() に相当し、print() は sys.stdout に相当します。 。読み込まれた行()。
以上がPython で一般的に使用される標準ライブラリとサードパーティ ライブラリ 2-sys モジュールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。