Python 2.7 を使用して Windows 上でファイルをコピーしようとしていますが、失敗することがあります。
shutil.copyfile(copy_file, dest_file)
次の IOError が発生します。
[Errno 2] No such file or directory
しかし、ファイルは存在します。問題は、ファイルのパスが長すぎることです。(> 255 文字)
これらのファイルをコピーするにはどうすればいいですか? 他のアプリケーションで開いても問題ありません。
パスが長すぎるファイルを作成するには、できるだけ長いファイル名でファイルを作成し、そのファイルを含むフォルダーをツリー構造の下の方に移動します。
私は以下の方法をいくつか試しましたが、成功しませんでした。http://timgolden.me.uk/python/win32_how_do_i/copy-a-file.html
ベストアンサー1
255文字の制限がよくわからなかったので、この郵便受けそこで、パスの前に \\?\ を追加するという有効な答えを見つけました。
shutil.copyfile("\\\\?\\" + copy_file, dest_file)
編集: 長いパスで作業すると Windows で問題が発生することがわかりました。私が使用するもう 1 つのトリックは、パスを短くすることです。
import win32api
path = win32api.GetShortPathName(path)