Pythonでパスが長すぎるファイルを別のディレクトリにコピーする 質問する

Pythonでパスが長すぎるファイルを別のディレクトリにコピーする 質問する

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)

おすすめ記事