Python 3.8で、shutilモジュールを使いファイルをコピーしてみます。(Windows10)
なお、shutilモジュールは、標準ライブラリに含まれているため、事前にインストールする必要はありません。
■Python
今回のPythonのバージョンは、「3.8.2」を使用しています。
■コピーするファイルを作成する
shutilモジュールを使いファイルのコピーを行ってみますので、コピーするファイルを作成します。
今回はテキストエディタを使い、「test1.txt」というファイルをカレントディレクトリに作成します。
■コード
import shutil shutil.copyfile('test1.txt', 'test2.txt')
コピーするファイルの作成ができましたので、コードを書いていきます。importでshutilモジュールを呼び出して、shutil.copyfileと記述します。()の中には、コピーするファイル(test01.txt)を左側、コピーされたファイル(test2.txt)を記述します。
なお、コピーするファイルと、コピーされたファイルの名前を同じに記述してしまうと、「shutil.SameFileError: ‘test1.txt’ and ‘test1.txt’ are the same file」といったエラーが発生してしまうので、コピーされたファイルの名前はコピーするファイルの名前とは別の名前を記述する。
■実行
今回のプログラムを、「copy-test.py」というファイルで保存し、コマンドプロンプトから実行してみる。
実行してみると、プログラムにはprint関数の記述もないので、何も表示されない。ファイルがコピーされたかどうか、カレントディレクトリを確認する。
カレントディレクトリを確認してみると「test2.txt」というファイルが作成されていることが確認でき、ファイルの中身も確認してみると、「test1.txt」のファイルの中身がコピーされていた。
■既に存在するディレクトリにコピーしたファイルを移動してみる
「test1.txt」のファイルの中身がコピーされていることが確認できましたので、次に既に存在するディレクトリにコピーしたファイルを移動してみます。
まず、カレントディレクトリに「directory01」というディレクトリを作成します。
■コード
import shutil shutil.copy('test1.txt', 'directory01')
「directory01」というディレクトリを作成しましたので、次にコードを書いていきます。importでshutilモジュールを呼び出して、先程とは違い「shutil.copy」と記述します。()の中には、コピーするファイルである「test1.txt」と、カレントディレクトリに作成した「directory01」を記述します。
■実行
プログラムを、「copy-test.py」というファイルで保存し、コマンドプロンプトから実行してみる。
実行してみると、プログラムにはprint関数の記述もないので、何も表示されない。コピーしたファイルが移動できているか、カレントディレクトリを確認してみます。
確認してみると、「directory01」というディレクトリの中に、コピーした「test1.txt」というファイルが作成されていることが確認できました。コピーされたので中身もtest1.txtと同じです。
■存在しないディレクトリを指定するとどうなるのか?
今回は「directory01」という既に存在するディレクトリの中にコピーした「test1.txt」を移動してみましたが、存在しないディレクトリを指定するとどうなるのか。
コメント