ファイルをコピー Python: shutil.copy()、shutil.copystat() メソッド

Python ファイルのコピー方法

Python ファイルを簡単にコピーするための組み込み機能を提供します Operaシステム シェル ユーティリティを使用します。

ファイルをコピーするには次のコマンドを使用します

shutil.copy(src,dst)

メタデータ情報を含むファイルをコピーするには、次のコマンドを使用します。

shutil.copystat(src,dst)

ファイルをコピーする方法 Python

ファイルをコピーする手順は次のとおりです。 Python shutil copy() メソッドを使用する:

ステップ1) 現在のディレクトリ内の元のパスを取得します
ファイルをコピーする前に、現在のディレクトリにある元のファイルへのパスを取得する必要があります。 コード内 –

  1. 変数の宣言
  2. 変数に分割関数を適用する

ファイルをコピーする Python

コードの説明

  • まず、「guru99.txt」ファイルが存在するかどうかを確認します。 先ほど guru99.txt ファイルを作成したので、それが存在することはわかっているので、さらにコードを進めます。
  • ファイルパスを変数「」に保存します。SRC” ファイルが存在する場合
  • パスを取得したら、パスとファイル名を分離します。
  • そのために、分割を使用します path.split ソース変数の関数
  • コードを実行すると「」が出力されます。ファイル名"と"ファイルパス" 別々に

ステップ2) shutil モジュールを使用して既存のファイルのコピーを作成します
Shutil モジュールを使用して、既存のファイルのコピーを作成します。 ここでは、既存のファイル「guru99.txt」のコピーを作成していました。

ファイルをコピーする Python

コードの説明

  • 元のファイル名「guru99.txt」の末尾に .bak の文字を追加した「guru99.txt.bak」となります。 .bak 拡張子が付いたこの名前が複製コピーになります。
  • 次に、ユーティリティのコピー機能を使用して、ソースから宛先にコピーします。
  • コードを実行すると、拡張子 .bak を持つ重複ファイルがパネルの右側に作成されることがわかります。

ステップ3) ファイルに関連付けられたメタデータ、ファイル権限、その他の情報をコピーします
コピー機能はファイルの内容のみをコピーしますが、他の情報はコピーしません。 コピーする メタデータ ファイル、ファイルの権限、および使用する必要があるその他の情報に関連付けられています。コピースタット" 関数。 このコードを実行する前に、コピー ファイル「guru99.text.bak」を削除する必要があります。

ファイルをコピーする Python

ファイルを削除してプログラムを実行すると、.txt ファイルのコピーが作成されますが、今回は次のようなすべての情報が含まれます。 ファイルのパーミッション、変更時刻、メタデータ情報。 OS シェルに移動して情報を確認できます。

ファイルをコピーする Python

これがコードです

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) 情報を取得する
最後に変更されたテキストファイルに関する情報を取得できます

ファイルをコピーする Python

  • コード行#15-.txtファイル(guru99)が最後に変更された日、日付、月、年、時刻を示します。パスモジュールを使用してファイルの変更時刻の詳細を取得し、次に 時間クラス c 時間関数 これを読み取り可能な時刻に変換します。コードを実行すると、ファイルguru99.txtが最後に変更された日時がわかります。 8月XNUMX日(月)th 13年35時2018分。
  • コード行 #17 - ファイルの変更に関する情報を提供することは同じですが、それを表す形式が異なります。 ここで使用するのは 変更時刻の取得関数 (path.getmtime(“guru99.txt”))。 ここで、c time 関数を使用する代わりに、次の関数を使用します。 タイムスタンプ機能から そして、日時オブジェクトを構築します。 出力では、ファイル変更時刻の詳細が異なる形式で出力されていることがわかります。 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)を使用して