一般的に使用されるPythonモジュール - ファイル複製モジュールshutil

一般的に使用されるPythonモジュール - ファイル複製モジュールshutil

shutilモジュール

シニアファイル、フォルダ、アーカイブ処理モジュール

shutil.copyfileobj(fsrc, fdst)

別のファイルにファイルの内容をコピーします。

import shutil
shutil.copyfileobj(open('old.xml','r'), open('new.xml', 'w'))

shutil.copyfile(src, dst)

ファイルのコピー

shutil.copyfile('f1.log', 'f2.log') #目标文件无需存在

shutil.copymode(src, dst)

コピー専用アクセス。コンテンツは、グループ、ユーザーが変更されないまま

shutil.copymode('f1.log', 'f2.log') #目标文件必须存在

shutil.copystat(src, dst)

唯一のコピーステータス情報であって、モードビット、のatime、mtimeを、旗

shutil.copystat('f1.log', 'f2.log') #目标文件必须存在

shutil.copy(src, dst)

ファイルのコピーと権限

import shutil
shutil.copy('f1.log', 'f2.log')

shutil.copy2(src, dst)

ファイルのコピーやステータス情報

import shutil
shutil.copy2('f1.log', 'f2.log')

shutil.ignore_patterns(*patterns)

shutil.copytree(src, dst, symlinks=Flase, ignore=None)

再帰的にフォルダをコピーするには

import shutil
shutil.copytree('folder1', 'folder2', ignore=shutil.ignore_patterns('*.pyc', 'tmp*')) #目标目录不能存在,注意对folder2目录父级目录要有可写权限,ignore的意思是排除

shutil.rmtree(path[,ignore_errors[,onerror]])

再帰的にファイルを削除するには

import shutil
shutil.rmtree('folder1')

shutil.move(src, dst)

再帰的に名前が変更され、実際には、同様のmvコマンドでファイルを、移動します。

import shutil
shutil.move('folder1', 'folder3')

shutil.make_archive(base_name, format, ...)

圧縮されたパッケージを作成し、ファイルパスを返す、といった:ジッパー、タール

次のようにオプションのパラメータは以下のとおりです。

  • BASE_NAME:アーカイブファイル名は、それがパスを圧縮することができます。ファイル名は、現在のディレクトリに保存された、または指定したパスに保存されたちょうどその時、
      如 data\_bak =>保存至当前路径  
      如:/tmp/data\_bak =>保存至/tmp/
  • 形式:圧縮されたパケットタイプ、 "郵便番号"、 "タール"、 "bztar"、 "gztar"
  • ROOT_DIR:フォルダパスを圧縮する(デフォルトではカレントディレクトリ)
  • 所有者:ユーザー、現在のユーザーのデフォルト
  • グループ:デフォルトではグループ、現在のグループ
  • ロガー:ロギング用に、オブジェクトは通常logging.Loggerです
#将 /data 下的文件打包放置当前程序目录
import shutil
ret = shutil.make_archive("data_bak", 'gztar', root_dir='/data')
#将 /data下的文件打包放置 /tmp/目录
import shutil
ret = shutil.make_archive("/tmp/data_bak", 'gztar', root_dir='/data')

shutil圧縮されたパケットを処理し、詳細に、実行するためにZIPファイルのTarFileに二つのモジュールを呼び出しています。

zipファイル圧縮&解凍

import zipfile
# 压缩
z = zipfile.ZipFile('laxi.zip', 'w')
z.write('a.log')
z.write('data.data')
z.close()
# 解压
z = zipfile.ZipFile('laxi.zip', 'r')
z.extractall(path='.')
z.close()

tarファイル圧縮&解凍

import tarfile
# 压缩
t=tarfile.open('/tmp/egon.tar','w')
t.add('/test1/a.py',arcname='a.bak')
t.add('/test1/b.py',arcname='b.bak')
t.close()
# 解压
t=tarfile.open('/tmp/egon.tar','r')
t.extractall('/egon')
t.close()

おすすめ

転載: www.cnblogs.com/Kwan-C/p/11620852.html