「Pythonの基礎 - ファイル」の版間の差分

ナビゲーションに移動 検索に移動
705行目: 705行目:
  else :
  else :
     print(path2 + 'は存在しません')
     print(path2 + 'は存在しません')
</syntaxhighlight>
<br><br>
== ファイル名の変更 ==
ファイル名を変更する場合は、<code>os</code>モジュールの<code>rename</code>関数を使用する。<br>
<syntaxhighlight lang="python">
os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)
</syntaxhighlight>
<br>
第1引数に指定したパスが示すファイル名を、第2引数に指定したパスが示すファイル名に変更する。<br>
<br>
ファイル名を変更する場合、変更前と変更後でファイルのディレクトリが異なっていても問題ない。<br>
ただし、ファイル名を変更する時、変更後のディレクトリが存在しない場合、例外<code>FileNotFoundError</code>が発生する。<br>
<syntaxhighlight lang="python">
import os
oldpath1 = './test/book.txt'
newpath1 = './test/memo.txt'
os.rename(oldpath, newpath)
oldpath2 = './test/book.txt'
newpath2 = './test/back/memo.txt'
os.rename(oldpath, newpath)
</syntaxhighlight>
<br>
Windows環境の場合、変更後のパスが既に存在する場合、例外<code>FileExistsError</code>が発生する。<br>
<syntaxhighlight lang="python">
import os
oldpath = './test/book.txt'
newpath = './back/memo.txt'
os.rename(oldpath, newpath)  # 既にmemo.txtファイルが存在する場合は、例外FileExistsErrorが発生する
</syntaxhighlight>
<br><br>
== ファイル名の変更 (pathlibモジュールの使用) ==
ファイル名を変更する場合は、<code>pathlib</code>モジュールにある<code>Path</code>クラスの<code>rename</code>メソッドを使用する。<br>
<br>
パスが示すファイルの名前を、引数に指定したパスが示すファイル名に変更する。<br>
<br>
ファイル名を変更する場合、変更前と変更後でファイルのディレクトリが異なっていても問題ない。<br>
ただし、ファイル名を変更する時、変更後のディレクトリが存在しない場合、例外<code>FileNotFoundError</code>が発生する。<br>
<syntaxhighlight lang="python">
Path.rename(target)
</syntaxhighlight>
<br>
<syntaxhighlight lang="python">
import pathlib
oldpath1 = pathlib.Path('./test/book.txt')
oldpath1.rename(pathlib.Path('./test/memo.txt'))
oldpath2 = pathlib.Path('./test/book.txt')
oldpath2.rename(pathlib.Path('./test/back/memo.txt'))
</syntaxhighlight>
<br>
Windows環境の場合、変更後のパスが既に存在する場合、例外<code>FileExistsError</code>が発生する。<br>
<syntaxhighlight lang="python">
import pathlib
oldpath = pathlib.Path('./test/book.txt')
oldpath.rename(pathlib.Path('./test/address.txt'))  # 既にaddress.txtファイルが存在する場合は、例外FileExistsErrorが発生する
  </syntaxhighlight>
  </syntaxhighlight>
<br><br>
<br><br>

案内メニュー