Python 3.8でファイルをコピーをやってみる

Python 3.8で、shutilモジュールを使いファイルをコピーしてみます。(Windows10)

なお、shutilモジュールは、標準ライブラリに含まれているため、事前にインストールする必要はありません。

■Python

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」を移動してみましたが、存在しないディレクトリを指定するとどうなるのか。

■コード

import shutil

shutil.copy('test1.txt', 'directory02')

存在しない「directory02」というディレクトリを指定して、プログラムを実行してみます。

実行してみると、カレントディレクトリに「directory02」というファイルが作成されました。

作成されたファイルを無理やりテキストエディタで開いてみると、「test1.txt」の中身がコピーされていました。

コメント

タイトルとURLをコピーしました