pythonベースライブラリ(os、shutil、glob)

4830 ワード

出典1:寒風出典2:追いかけたブログ
一.osパッケージ
OSパッケージには、オペレーティングシステムの多くの機能を実現するために様々な関数が含まれています.このかばんはとても複雑だ.​import os.path path="/home/User/Document/test.txt"
print(os.path.basename(path)#クエリーパスに含まれるファイル名print(os.path.dirname(path)#クエリーパスに含まれるディレクトリ
filename=os.path.basename(path)#クエリーパスに含まれるファイル名extension_name=os.path.splitext(filename)#クエリーファイル名の拡張子の例(個別の例):
import arcpy.mapping as mapping,os path = r"C:"f = open("BrokenDataLinks.txt","w") for root,dirs,files in os.walk(path): for filename in files: basename,extension = os.path.splitext(filename) if extension = ".mxd": fullpath = os.path.join(root,filename) mxd = mapping.MapDocument(fullpath) f.write("MXD:"+ filename + "") brknList = mapping.ListBrokenDataSources(mxd) for brknItem in brknList: f.write("\t"+ brknItem.name + "") f.close()
path="/home/User/Document/test.txt"info = os.path.split(path)#はパスをファイル名とディレクトリの2つの部分に分割し、1つのテーブルに置いてprint(info[0])#info[0]の戻りパス、すなわち/home/User/Documentを返し、最後に/とosがないことに注意する.path.basename(path)は結果をそっくり返します.print(info[1])#info[1]は、完了ファイル名、すなわちtestを返す.txt,os.path.dirname(path)は結果をそっくり返します.
path2 = os.path.join('/','home','User','Document','file 1.txt')#ディレクトリ名とファイル名を使用してパス文字列print(path 2)を構成
p_List=[path,path 2]print(os.path.commonprefix(p_list)#複数のパスの共通部を問い合わせる
また、print(os.path.exists(path)#クエリーファイルにprint(os.path.getsize(path))#クエリーファイルサイズprint(os.path.getatime(path))#クエリーファイルが前回読み込まれた時間print(os.path.getmtime(path)#クエリーファイルが前回変更された時間print(os.path.isfile(path)#パスが通常ファイルprint(os.path.isdir(path)を指しているかどうか)#パスがディレクトリファイルを指しているかどうか
osパッケージのいくつかのコマンドは、ファイル管理に使用されます.mkdir(path)は、新しいディレクトリを作成します.pathは文字列で、新しいディレクトリのパスを表し、ディレクトリを1つずつ構築するしかありません.$mkdirコマンドに相当します.注意:mkdirs(path)はmkdir-p/var/zs/zs 1/zs 2に相当する
rmdir(path)は空のディレクトリを削除し、pathは削除したいディレクトリのパスを表す文字列である.$rmdirコマンドに相当します.**補足ですが、前述のディレクトリが空でなければosは使えません.removedirs()削除(removedirsはマルチレベル空ディレクトリを削除し、rmdirは1レベル空ディレクトリを削除します).ただし,モジュールshutilのrmtreeメソッドを用いることができる.例:import shutil shutil.rmtree(path)
Listdir(path)は、ディレクトリ内のすべてのファイルを返します.$lsコマンドに相当します.例えば、import os dir="E:testDatasparkspark 1.6"files=os.listdir(dir) for file in files: if os.path.isfile(file):print file#fileはディレクトリを持たないファイル名f=open(dir+""+file,'r')print f.readline()f.close()
remove(path)pathが指すファイルを削除します.
rename(src,dst)はファイルの名前を変更し、srcとdstは2つのパスで、それぞれ名前を変更する前と後のパスを表します.
chmod(path,mode)はpathが指すファイルの権限を変更する.$chmodコマンドに相当します.
chown(path,uid,gid)はpathが指すファイルの所有者と所有グループを変更する.$chownコマンドに相当します.
stat(path)pathが指すファイルの追加情報を表示します.$ls-lコマンドに相当します.例は次のとおりです.
ファイルを指定
path=r"e:\zs"pf = path + "/README.md"
このファイルの情報
os.stat(pf)
posix.stat_result(st_mode=33279, st_ino=67L, st_dev=26L, st_nlink=1, st_uid=0, st_gid=0, st_size=50L, st_atime=1429580969, st_mtime=1429580969, st_ctime=1429580969)
結果から見ると、何も見えないかもしれないので、焦らないでください.このような結果はcomputer娘に友好的で、読者に友好的ではないかもしれません.次の方法を使えば、友达はずっとよくなります.
fi = os.stat(pf) mt = fi[8]
fi[8]はst_mtimeの値は、最後のmodified(変更)ファイルの時間を表します.結果:
mt 1429580969
やはり友好的ではありません.次にtimeモジュールを使用して友好的にします.
import time time.ctime(mt) 'Tue Apr 21 09:49:29 2015'
今は読者に友好的です.
Symlink(src,dst)はファイルdstにソフトリンクを作成し、srcはソフトリンクファイルのパスです.$ln-sコマンドに相当します.
getcwd()は、$pwdコマンドに相当する現在のワークパス(cwd,current working directory)をクエリーします.
os.System()は、実行が終了するまで、現在のプロセスでコマンドを実行します.新しいプロセスが必要な場合はosを使用します.execまたはos.execvp.また、os.System()はshellによりコマンドを実行する、実行終了後に制御権を元のプロセスに戻すがos.exec()および関連する関数は、実行後に制御権を元の継承に戻さず、Pythonが制御を失う.system(command) -> exit_status(実行ステータスコード、0または1を返す)どんなオペレーティングシステムでも、以下の操作でページを開くことができます:import webbrowser webbrowser.open("http://www.itdiffer.com「)os.system(command)を使う必要はありません.ブラウザのパスを探す必要があります.
os.popen(command):ファイルオブジェクトを返し、コマンド実行結果をファイルオブジェクトに整理します.linux shellプログラミングのcommandまたは$(command)と同様に、この2つのコマンドは、コマンド実行ステータスコードではなく、コマンド実行結果を返します.popen(...) popen(command [, mode='r' [, bufsize]]) -> pipe Open a pipe to/from a command returning a file object. for line in os.popen("ls -l/mnt"): print(line)
二.shutilパッケージ
copy(src,dst)は、srcからdstまでファイルをコピーします.$cpコマンドに相当します.move(src,dst)はファイルを移動し、srcからdstに移動します.$mvコマンドに相当します.
例えば、ファイルa.txt:import shutil shutilをコピーしたい.copy('a.txt','b.txt')以上の関連関数はLinuxシステムのshellコマンドとよく似ており、Linuxに詳しい人は一目でわかります.
三.globパッケージ
globパッケージで最もよく使われる方法は1つだけですglob.glob().この方法の機能はLinuxのlsと似ている.Linux式のファイル名フォーマット式(filename pattern expression)を受け入れ、その式に一致するすべてのファイル(正規式と類似)をリストし、すべてのファイル名を1つのテーブルに戻します.だからglob()はディレクトリの下のファイルをクエリーする良い方法です.
このファイル名式の構文はPython自身の正規表現とは異なり、対応関係は大体以下の通りである.
Filename Pattern Expression Python Regular Expression * .* ? .
[0-9] same
[a-e] same
[^mnp] same