python標準ライブラリsysとOSの関数の使用方法とインスタンスの詳細

6079 ワード

python標準ライブラリsys
Sysモジュールは、Python実行時の構成およびリソースを処理するための多くの関数メソッドおよび変数を含む非常に実用的なサービスのセットを含み、python解釈器などの前のプログラム以外のシステム環境と対話することができる.
Sysモジュールの一般的な関数リスト(import sys):
関数#カンスウ#
説明
dir(sys)
dir()メソッドモジュールで使用可能なメソッドを表示します.注意:エディタでは、コードの符号化方法を事前に宣言することに注意してください.そうしないと、中国語が文字化されません.
sys.argv
プログラム外部からプログラムへのパラメータの転送を実現
sys.exit([arg])
プログラム中間の終了、arg=0が正常終了
sys.getdefaultencoding()
システムの現在のエンコードを取得します.一般的にデフォルトはasciiです.
sys.setdefaultencoding()
システムのデフォルトの符号化を設定してdir(sys)を実行する時この方法を見ることができなくて、解釈器の中で実行して通過しないで、先に実行することができます
reload(sys),
setdefaultencoding(‘utf 8’)を再実行し、システム符号化をutf 8に設定
sys.getfilesystemencoding()
ファイルシステムのエンコード方式を取得し、Windowsでは'mbcs'、macでは'utf-8'を返します.
sys.path
指定したモジュール検索パスの文字列セットを取得し、作成したモジュールを取得したパスの下に置くことで、プログラム内のimport時に正しく見つけることができます.
sys.platform
現在のシステムプラットフォームを取得します.
sys.stdin
sys.stdoutsys.stderr stdin、stdout、およびstderr変数は、標準I/Oストリームに対応するストリームオブジェクトを含む.出力をよりよく制御する必要があり、printが要求を満たすことができない場合は、それらが必要です.それらを置き換えたり、出力をリダイレクトしたり、他のデバイス(device)に入力したり、非標準的な方法で処理したりすることもできます.
sys.modules
pythonが起動するとメモリにロードされるグローバル辞書です.プログラマが新しいモジュールをインポートするたびにsys.modulesはモジュールを自動的に記録します.モジュールを2回目に再インポートすると、pythonは辞書で直接検索され、プログラムの実行速度が速くなります.辞書が持つすべての方法を持っています.
python標準ライブラリos
osモジュールはプログラムとオペレーティングシステムのインタラクションを担当し、オペレーティングシステムの下部にアクセスするインタフェースを提供します.
osモジュールの一般的な関数リスト(import os):
関数-説明:
os.Environ環境変数を含むdictionaryのマッピング関係
os.name現在使用されているプラットフォームを表示
os.sep現在のプラットフォームの下のパス区切り文字を表示
os.linesepは、現在のプラットフォームで使用されている行終端子を示します.
os.remove('filename')ファイルを削除
os.rename(「oldname」>「newname」)ファイル名の変更
os.getcwd()現在のpythonスクリプトのワークパスを表示
os.chdir(dir)現在のディレクトリを変更し、windowsの下でエスケープに使用することに注意します.
os.Listdir('dirname')は、指定したディレクトリの下にあるすべてのファイルとディレクトリ名を返します.
os.makedirs('dirname/dirname')は、多層規則ディレクトリを生成します.
os.rmdir('dirname')単一レベルディレクトリの削除
os.getlogin()ユーザーログイン名を取得
os.getenv('key')環境変数構成を得る
os.putenv('key')環境変数の設定
os.System()shellコマンドを実行します.注意:ここでは新しいshellを開き、コマンドを実行します.コマンドが終了したら、shellを閉じます.
例:

os.mkdir('/tmp/xx'),os.system("echo'hello' > /tmp/xx/a.txt"),os.listdir('/tmp/xx') 

os.rename('/tmp/xx/a.txt','/tmp/xx/b.txt'),os.remove('/tmp/xx/b.txt'),os.rmdir('/tmp/xx')

pythonで簡単なshellを作成します.

#!/usr/bin/python
import os, sys
cmd = sys.stdin.readline();
while cmd:
os.system(cmd);
cmd = sys.stdin.readline();

os.path
関数-説明:
os.path.abspath()絶対パスosを取得する.path.abspath(“1.txt”) == os.path.join(os.getcwd(),“1.txt”)
os.path.split()は、ディレクトリ名のディレクトリ部分とファイル名部分を区別するために使用されます.
os.pardirは現在のプラットフォームの下の上位ディレクトリの文字を表します...
os.path.join(path,name)接続ディレクトリとファイル名.
os.path.basename(path)はファイル名を返す
os.path.dirname(path)はファイルパスを返します
os.path.getctime("/root/1.txt")は1を返します.txtのctime(作成時間)タイムスタンプ
os.path.exists(os.getcwd()ファイルが存在するか否かを判断する
os.path.isfile(os.getcwd()はファイル名かどうかを判断し、1は0 No
os.path.isdir('c:Pythontemp')ディレクトリかどうかを判断し、1は0 No
os.path.islink('/home/11.1 sql')がシンボル接続かどうかwindowsでは使用できません
os.path.ismout(os.getcwd()がファイルシステムインストールポイントかどうかwindowsでは使用できません
os.path.samefile(os.getcwd()、'/home')2つのファイル名が同じファイルを指しているかどうか見てみましょう
os.walk()は,与えられたディレクトリの下にあるすべてのディレクトリとファイルを遍歴することができる.
os.path.walk('/home/huaying',test_fun,“a.c”)は、/home/huayingのすべてのサブディレクトリにこのディレクトリを含み、各ディレクトリに対して関数test_を呼び出します.fun.
os.walkとos.path.walkの違い
関数宣言:os.walk(top, topdown=True,None)
1、パラメータtopは、巡回する必要があるトップディレクトリのパスを表します.
2、パラメータtopdownのデフォルト値は「True」で、まず上位ディレクトリの下のファイルを返し、次にサブディレクトリの中のファイルを巡回することを意味します.topdownの値がFalseの場合は、サブディレクトリ内のファイルを巡回してから、最上位ディレクトリの下のファイルに戻ることを示します.
3、パラメータonerrorのデフォルト値は「None」で、ファイルの遍歴を無視したときのエラーを表します.空でない場合は、カスタム関数プロンプトのエラーメッセージを指定してから、ループを続行するか、例外を投げ出してループを中止します.
戻り値:関数は3つの要素を含むメタグループを返します.この3つの要素は、パス名、パスサブディレクトリリスト、ディレクトリ下のファイルリストです.
関数宣言:os.path.walk(top, func, arg)
1、パラメータtopは、遍歴が必要なディレクトリパスを表します.
2、パラメータfuncはコールバック関数、すなわち遍歴経路を処理する関数を表す.コールバック関数とは、ある関数のパラメータとして使用され、ある時間にトリガーされると、プログラムは定義されたコールバック関数を呼び出してタスクを処理します.注意:walkのコールバック関数には3つのパラメータが必要です.1番目のパラメータはosです.path.walkのパラメータarg,2番目のパラメータはディレクトリdirname,3番目のパラメータはファイルリストnamesを表す.注意:os.path.walkのコールバック関数のファイルリストはosではありません.walk()のようにサブディレクトリとファイルを別々にするのではなく,コールバック関数でファイルかサブディレクトリかを判断する必要がある.
3、パラメータargはコールバック関数に渡されるメタグループであり、コールバック関数に処理パラメータを提供し、argは空であってもよい.コールバック関数の1番目のパラメータは、この入力されたメタグループを受信するために使用される.
プロシージャ:topをルートとするディレクトリツリーの各ディレクトリ(top自体を含む)は、パラメータ(arg,dirname,names)でコールバック関数functを呼び出します.パラメータdirnameはアクセスするディレクトリを指定し、パラメータnamesはディレクトリ内のファイル(os.listdir(dirname)から得られる)をリストします.コールバック関数は、namesがdirnameの下にアクセスするディレクトリの設定を変更することができます.たとえば、ツリーの一部にアクセスしないようにします.(namesによって関連付けられたオブジェクトは、delまたはslice割り当てを使用して適切な場所で変更する必要があります.)注意:シンボルがディレクトリに接続されると、サブディレクトリとして処理されないため、walk()はアクセスしません.接続にアクセスするディレクトリはosでなければなりません.path.islink(file)とos.path.isdir(file)はそれらを識別し、walk()を呼び出す必要があります.
違い:os.path.walk()とos.walk()で生成されたファイル名のリストは同じではありません.os.walk()はディレクトリツリーの下のディレクトリパスとファイルパスを生成し、os.path.walk()は、ファイルパス(サブディレクトリとファイルの混合リスト)のみを生成します.
例:

#coding=utf-8

importos
#            ..
print(os.path.pardir)
# os.path.abspath(__file__) :    
#       (        )
print(os.path.abspath(__file__))
# os.path.split(os.getcwd())                        。
#       (     )
print(os.getcwd());
print(os.path.split(os.path.abspath(__file__))[0]) #   
print(os.path.dirname(os.path.abspath(__file__)))#       
#           
print(os.path.join(os.path.dirname(os.path.abspath(__file__)), os.path.pardir) )
#      
#          ,    (os.path.dirname():      ,         )
print(os.path.dirname(os.getcwd()));
print(os.path.abspath(os.path.join(os.getcwd(), os.path.pardir)) )

python標準ライブラリsysとOSの使用方法については、次のリンクを参照してください.