Python でのファイルのコピー:shutil.copy()、shutil.copystat() メソッド
Python コピー ファイル メソッド
Python には、オペレーティング システム シェル ユーティリティを使用してファイルを簡単にコピーするための組み込み関数が用意されています。
次のコマンドは、ファイルをコピーするために使用されます
shutil.copy(src,dst)
次のコマンドは、メタデータ情報を含むファイルをコピーするために使用されます
shutil.copystat(src,dst)
Python でファイルをコピーする方法
shutil copy() メソッドを使用して Python でファイルをコピーする手順は次のとおりです:
ステップ 1) 現在のディレクトリ内の元のパスを取得する
ファイルをコピーする前に、現在のディレクトリ内の元のファイルへのパスを取得する必要があります。コード内 –
コードの説明
- まず、「guru99.txt」ファイルが存在するかどうかを確認します。前に guru99.txt ファイルを作成したので、そのファイルが存在することがわかり、コードをさらに進めます
- 変数「src」にファイル パスを保存します 」 ファイルが存在する場合
- パスを取得したら、パスとファイル名を分離します
- そのために、分割
path.splitを使用します ソース変数の関数 - コードを実行すると、「ファイル名」が出力されます 」および「ファイルパス 」別に
ステップ 2) Shutil モジュールを使用して既存のファイルのコピーを作成する
Shutil モジュールを使用して、既存のファイルのコピーを作成します。ここでは、既存のファイル「guru99.txt」のコピーを作成していました。
コードの説明
- 元のファイル名「guru99.txt」の末尾に「guru99.txt.bak」という文字 .bak を追加します。拡張子が .bak のこの名前が複製コピーになります
- 次に、ユーティリティのコピー機能を使用して、ソースから宛先にコピーします
- コードを実行すると、パネルの右側に拡張子が .bak の複製ファイルが作成されます
ステップ 3) ファイルに関連付けられたメタデータ、ファイル許可、およびその他の情報をコピーします
コピー機能は、ファイルの内容のみをコピーし、他の情報はコピーしません。 メタデータをコピーするには ファイルに関連付けられている、ファイルのアクセス許可、および使用する必要があるその他の情報「copystat」 " 関数。このコードを実行する前に、コピー ファイル「guru99.text.bak」を削除する必要があります。
ファイルを削除してプログラムを実行すると、.txt ファイルのコピーが作成されますが、今回はファイルのアクセス許可、変更時刻、メタデータ情報などのすべての情報が含まれています。 . OS シェルに移動して、情報を確認できます。
コードはこちら
import os
import shutil
from os import path
def main():
# make a duplicate of an existing file
if path.exists("guru99.txt"):
# get the path to the file in the current directory
src = path.realpath("guru99.txt");
#seperate the path from the filter
head, tail = path.split(src)
print("path:" +head)
print("file:" +tail)
#let's make a backup copy by appending "bak" to the name
dst = src+".bak"
# nowuse the shell to make a copy of the file
shutil.copy(src, dst)
#copy over the permissions,modification
shutil.copystat(src,dst)
if __name__=="__main__":
main()
ステップ 4) 情報を取得する
最後に変更されたテキスト ファイルに関する情報を取得できます
- コード行 #15 - .txt ファイル (guru99) が最後に変更された日、日、月、年、時刻を示します。 path モジュールを使用してファイル変更時刻の詳細を取得し、次に time クラスの c time 関数 を使用します。 それを読み取り可能な時間に変換します。コードを実行すると、ファイル guru99.txt が最後に変更されたのが 1 月 8 日月曜日 であることがわかります 2018 年 13:35。
- コード 17 行目 - ファイルの変更に関する情報を提供するのと同じことを行いますが、それを表す形式が異なります。ここでは 変更時刻取得関数 を使用します (path.getmtime(“guru99.txt”))。 c time 関数を使用する代わりに、 From Time Stamp 関数 を使用します。 日時オブジェクトを作成します。出力では、ファイル変更時間の詳細が異なる形式で出力されていることがわかります 2018-01-08, 13:35:51.334072
コードはこちら
#
# Example file for working with o.s path module
import os
from os import path
import datetime
from datetime import date, time, timedelta
import time
def main():
# Get the modification time
t = time.ctime(path.getmtime("guru99.txt.bak"))
print(t)
print(datetime.datetime.fromtimestamp(path.getmtime("guru99.txt.bak")))
if __name__ == "__main__":
main()
まとめ
- コード shutil.copy (src,dst) を使用して既存のファイルのコピーを作成するには
- ファイルのアクセス許可、変更時刻、メタデータ情報など、元のファイルのすべての情報を複製ファイルにコピーするには コードを使用して shutil.copystat(src,dst)
Python