35-36 Python学習ノート——OSモジュール常用インタフェース


ファイルシステムモジュール:OS
ディレクトリのプロパティとメソッド
getcmd():現在の作業ディレクトリを取得する
chdir():現在の作業ディレクトリを変更する
chroot():現在のプロセスのルートディレクトリを設定する
Listdir():指定したディレクトリの下にあるすべてのファイル名をリストします.
mkdir():指定されたディレクトリの作成
makedirs():マルチレベルディレクトリの作成
rmdir():ディレクトリの削除
removedirs():マルチレベルディレクトリの削除
ファイルのプロパティとメソッド
mkfifo():名前付きパイプを作成し、先にパイプを出します.
mknod():デバイスファイルの作成
remove():ファイルを削除する
unlink()unlink():ファイルを削除する
rename()rename():名前の変更なまえのへんこう
stat():ファイルステータス情報を返す
Symlink(src,dst):シンボルリンクosを作成します.symlink('test2.txt','test2.symlink')
utime():ファイルタイムスタンプの更新
tmpfile():新しい一時ファイルを作成して開く(w+b)
walk()ディレクトリツリージェネレータ
           g1. = os.walk('/tmp')ジェネレータ、g 1.next()
アクセス権限のプロパティとメソッド
アクセス('test.txt',useID):指定したユーザーにアクセス権があるかどうかを判定します.
chmod('test.txt',0640):権限の変更
chown():属主、属グループを変更します.
umask():デフォルト権限モードの設定
ファイル記述子アクション
Open():ライブラリ内のopen()関数に相当する最下位オペレーティングシステムのopenで、ファイルを開きます.
read ()
write()
デバイスファイル:
makedev():指定したプライマリ・デバイス番号、セカンダリ・デバイス番号に基づいてデバイスを作成します.mknod():デバイスファイルの作成
major():指定したデバイスからプライマリ・デバイス番号を取得
minor():指定したデバイスからサブデバイス番号を取得する
OS.path()サブモジュールはファイルパスに関連する
import os.path
ファイルパスの文字列管理を実現
.basename():パスベース名
.dirname():パスディレクトリ名
.join():クロスコネクション
.split():dirname()、basename()メタグループを返します.
.splitext():戻り(filename,extension)メタグループ
情報
.getatime():指定したファイルの最後のアクセス時間を返します.
.getctime() : 
.getmtime()
.getsize():ファイルのサイズを返します.
検索
exists():指定ファイルが存在するか否かを判断する
isabs():指定されたパスが絶対パスであるか否かを判断する
isdir():ディレクトリかどうか
isfile():ファイルかどうか
islink():シンボル接続かどうか
ismount():マウントポイントかどうか
samefile():2つのパスが同じファイルを指しているかどうか
練習する
1、ファイルが存在するかどうかを判断し、開いているかどうかを判断する
複数行のデータをキーボードで繰り返し入力させる
サブファイルに追加保存
スクリプト:
import os
import os.path


filename = '/tmp/test.txt'

if os.path.isfile(filename):
    f1 = open(filename,'a+')

while True:
    line = raw_input('Enter something>')
    if line == 'q' or line = 'quit':
        break
    f1.write(line+'
') f1.close()

2、辞書をファイルに書き込む
オブジェクト永続ストレージ:
pickleモジュール:メモリ内のオブジェクトをファイルに永続化できる
marshalモジュール
 
DBMモジュールインタフェース(データベースに格納):データをデータベースに格納するだけでは、フラット化やストリーミングは実現できません
shelveモジュール:ストリーム化とデータベースへの格納を実現
 
# pickle      :                 

d1 = {'x':123,'y':567,'z':'hello magedu.com'}
print(d1)

f5 = open('/tmp/dfile.txt','a+')
f5.write(d1)   #     

####          pickle  :                 

#  d1    f5
pickle.dump(d1,f5)

#  d1      dfile.txt
f5.flush()

[DOS        
cd /tmp
ls
file dfile.txt]

f5.close()

#     
f6 = open('/tmp/dfile.txt','r')

#       
d2 = pickle.load(f6)

print(d2)