python標準ライブラリ概要(二)osモジュール
6327 ワード
プログラミングを学ぶ過程で、私はずっと簡単な考え方に従って、もっと良いコードを書いて、もっと良いコードを書いて、pythonは私の主な開発ツールとして、python標準ライブラリを深く理解する必要があります.標準ライブラリにすでにある車輪をよりよく利用し、自分の開発効率を向上させる. 標準ライブラリのソースコードは必ず最もpythonicであり、pythonicの符号化スタイルを学ぶ.
このシリーズの文章はすべてpython 3に基づいている.5、インタラクティブ環境はすべてIpython 5.1.0に基づく
文章は標準ライブラリの常用機能紹介、ソース分析(重要なものを選ぶ)、応用シーン紹介(工事実践が少ない、許して^^)を組織方式とする.
osモジュール
osモジュールはpythonがオペレーティングシステムと対話する主なモジュールであり、osモジュールはオペレーティングシステム間の差異によるプログラミング面の違いを補うことができる.仕事で使う主なシーンは、ファイルパスの説明、windowsとlinuxの間のファイルパスの違いです.
OS関連
os.sepオペレーティングシステム固有ファイルパスセパレータ
os.name移植可能なオペレーティングシステムインタフェース識別は、オペレーティングシステムAPIの一連の相互関連標準の総称であり、windowsはnt Linux/Unixはposixである.
os.defpath実行可能ファイルのデフォルト検索パス
os.curdir現在のパスの略称
os.pardir親パスの略称
os.uname()現在のオペレーティングシステムの詳細を取得する
環境変数に関連する
os.Environ現在の環境変数の取得
環境の特定の値を取得
環境変数の設定
フォルダ関連
os.getcwd()現在のワークパスの取得
os.mkdirフォルダの作成
os.rmdirフォルダの削除
os.Listdirは、現在のディレクトリまたは指定されたディレクトリの下にあるファイルをリスト形式で表示します.
os.renameファイル名の変更
os.removeファイルの削除
ファイルの削除はこうですが、新しいファイルはopen関数で実現されます.python新しいファイルはopen関数で実現されます.
os.パスに関連するパス
パスの絶対パスを取得
パスの基本名の取得
パスリストの共通パスの最も長い部分を取得
パスの開始ディレクトリを取得
パスがシステムに存在するかどうかを確認します
翻訳者ディレクトリの絶対パス
パスの'~'をホームディレクトリの絶対パスに変更
最後にディレクトリに入った時刻を表示
最後にディレクトリを変更した時刻を表示
パスのサイズを表示
パスがファイルかフォルダかを表示
パスはつなぎ合わせて、異なるオペレーティングシステムによって異なるファイルのつなぎ合わせを採用して、例えば私は今linuxシステムを使って'/'つなぎ合わせを採用します
仕様システムのファイルパス形式
あるパスから相対パスを計算します.たとえば、現在/home/zhangwenchao/os_test
os.path.split(path)はパスをdirnameとbasenameに分割し,メタグループを返す
ファイルの拡張子を分割し、ファイルの拡張子を取得できます.
os.path.samefile(path 1,path 2)ディレクトリまたはファイルが同じか否かを判断する
このシリーズの文章はすべてpython 3に基づいている.5、インタラクティブ環境はすべてIpython 5.1.0に基づく
文章は標準ライブラリの常用機能紹介、ソース分析(重要なものを選ぶ)、応用シーン紹介(工事実践が少ない、許して^^)を組織方式とする.
osモジュール
osモジュールはpythonがオペレーティングシステムと対話する主なモジュールであり、osモジュールはオペレーティングシステム間の差異によるプログラミング面の違いを補うことができる.仕事で使う主なシーンは、ファイルパスの説明、windowsとlinuxの間のファイルパスの違いです.
OS関連
os.sepオペレーティングシステム固有ファイルパスセパレータ
In [2]: os.sep
Out[2]: '/'
os.name移植可能なオペレーティングシステムインタフェース識別は、オペレーティングシステムAPIの一連の相互関連標準の総称であり、windowsはnt Linux/Unixはposixである.
In [3]: os.name
Out[3]: 'posix'
os.defpath実行可能ファイルのデフォルト検索パス
In [9]: os.defpath
Out[9]: ':/bin:/usr/bin'
os.curdir現在のパスの略称
In [10]: os.curdir
Out[10]: '.'
os.pardir親パスの略称
In [11]: os.pardir
Out[11]: '..'
os.uname()現在のオペレーティングシステムの詳細を取得する
In [12]: os.uname()
Out[12]: posix.uname_result(sysname='Linux', nodename='chao', release='4.10.0-42-generic', version='#46-Ubuntu SMP Mon Dec 4 14:38:01 UTC 2017', machine='x86_64')
環境変数に関連する
os.Environ現在の環境変数の取得
In [13]: os.environ
Out[13]: environ({'LC_PAPER': 'zh_CN.UTF-8', 'SSH_AUTH_SOCK': '/run/user/1000/keyring/ssh',...})
環境の特定の値を取得
In [14]: os.environ.get('LC_PAPER')
Out[14]: 'zh_CN.UTF-8'
In [16]: os.getenv('LC_PAPER')
Out[16]: 'zh_CN.UTF-8'
環境変数の設定
In [17]: os.environ['hello']='world'
In [19]: os.getenv('hello')
Out[19]: 'world'
フォルダ関連
os.getcwd()現在のワークパスの取得
In [157]: os.getcwd()
Out[157]: '/home/zhangwenchao/os_test'
os.mkdirフォルダの作成
In [119]: os.mkdir('./what')
In [120]: ls
f1 f2 hello/ what/
os.rmdirフォルダの削除
In [131]: ls
f1 f2 hello/ what/
In [132]: os.rmdir('hello')
In [133]: ls
f1 f2 what/
os.Listdirは、現在のディレクトリまたは指定されたディレクトリの下にあるファイルをリスト形式で表示します.
In [130]: os.listdir()
Out[130]: ['hello', 'f1', 'f2', 'what']
In [131]: ls
f1 f2 hello/ what/
os.renameファイル名の変更
In [148]: ls
f1 f2 hello/ what/
In [149]: os.rename('./hello','world')
In [150]: ls
f1 f2 what/ world/
os.removeファイルの削除
In [150]: ls
f1 f2 what/ world/
In [151]: os.remove('f1')
In [152]: ls
f2 what/ world/
ファイルの削除はこうですが、新しいファイルはopen関数で実現されます.python新しいファイルはopen関数で実現されます.
In [153]: f3 = open('./f3','w')
In [154]: ls
f2 f3 what/ world/
In [155]: f3.close()
In [156]: ls
f2 f3 what/ world/
os.パスに関連するパス
パスの絶対パスを取得
In [27]: os.path.abspath(path='.')
Out[27]: '/home/zhangwenchao/os_test'
パスの基本名の取得
In [31]: os.path.basename('/home/zhangwenchao')
Out[31]: 'zhangwenchao'
パスリストの共通パスの最も長い部分を取得
In [37]: os.path.commonpath(['/home/zhangwenchao','/home/zhangwenchao/chaozi','/home/zhangwenchao/hello'])
Out[37]: '/home/zhangwenchao'
パスの開始ディレクトリを取得
In [38]: os.path.dirname('/home/zhangwenchao')
Out[38]: '/home'
パスがシステムに存在するかどうかを確認します
In [40]: os.path.exists('/home/zhangwenchao')
Out[40]: True
In [41]: os.path.exists('/home/zhangwenchao/haha')
Out[41]: False
翻訳者ディレクトリの絶対パス
In [49]: os.path.expanduser(path='~')
Out[49]: '/home/zhangwenchao'
パスの'~'をホームディレクトリの絶対パスに変更
In [55]: os.path.expanduser('~/os_test')
Out[55]: '/home/zhangwenchao/os_test'
最後にディレクトリに入った時刻を表示
In [58]: os.path.getatime('.')
Out[58]: 1522289333.369126
最後にディレクトリを変更した時刻を表示
In [60]: os.path.getmtime('.')
Out[60]: 1522289329.4610949
パスのサイズを表示
In [61]: os.path.getsize('/home/zhangwenchao/os_test')
Out[61]: 4096
パスがファイルかフォルダかを表示
In [62]: os.path.isdir('/home/zhangwenchao/os_test')
Out[62]: True
In [63]: os.path.isfile('/home/zhangwenchao/os_test')
Out[63]: False
パスはつなぎ合わせて、異なるオペレーティングシステムによって異なるファイルのつなぎ合わせを採用して、例えば私は今linuxシステムを使って'/'つなぎ合わせを採用します
In [64]: os.path.join('/home','hello','world')
Out[64]: '/home/hello/world'
仕様システムのファイルパス形式
In [70]: os.path.normpath('c:\home\ha')
Out[70]: 'c:\\home\\ha'
In [72]: os.path.normpath('/home//ha')
Out[72]: '/home/ha'
あるパスから相対パスを計算します.たとえば、現在/home/zhangwenchao/os_test
In [79]: os.path.relpath('/home')
Out[79]: '../..'
In [80]: os.path.relpath('/home/work')
Out[80]: '../../work'
In [81]: os.path.relpath('/home/work','/home')
Out[81]: 'work'
In [82]: os.path.relpath('/home/work','/')
Out[82]: 'home/work'
os.path.split(path)はパスをdirnameとbasenameに分割し,メタグループを返す
In [84]: os.path.split('/home/work/hello')
Out[84]: ('/home/work', 'hello')
ファイルの拡張子を分割し、ファイルの拡張子を取得できます.
In [85]: os.path.splitext('/home/work/hello.txt')
Out[85]: ('/home/work/hello', '.txt')
In [87]: os.path.splitext('/home/work/hello-txt')
Out[87]: ('/home/work/hello-txt', '')
os.path.samefile(path 1,path 2)ディレクトリまたはファイルが同じか否かを判断する
In [88]: %mkdir hello
In [89]: ls
hello/
In [90]: os.path.samefile('./hello','.')
Out[90]: False
In [91]: os.path.samefile('./hello','./hello')
Out[91]: True