Guyz-私はshutil.copyツリーがディレクトリが存在しないのにディレクトリが存在すると考えるというこの問題を抱えています..ソースとディレクトリの両方がローカルです...最初に実行したときはエラーなしで実行されましたが、コンテンツは実際にはコピーされません、2回目ディレクトリがすでに存在すると考えて実行しました。詳細は以下のとおりです。shutil以外にコピーする方法がある場合は、入力内容を入力してください。提案してください。
エラーなしで最初の時間が実行されましたが、実際にはコピーされませんでした
<username:/local/mnt/workspace/username/Scripts>python test.py
//local/mnt/workspace/loc/04.01.01.00.303_HY11/out
//local/mnt/workspace/test/out
copying
2回目の再実行、ディレクトリが存在すると思われる
<username:/local/mnt/workspace/username/Scripts>python test.py
//local/mnt/workspace/loc/04.01.01.00.303_HY11/out
//local/mnt/workspace/test/out
copying
Traceback (most recent call last):
File "test.py", line 21, in <module>
main()
File "test.py", line 18, in main
copytree(src,dst)
File "test.py", line 11, in copytree
shutil.copytree(s, d)
File "/pkg/qct/software/python/2.5.2/.amd64_linux26/lib/python2.5/shutil.py", line 110, in copytree
os.makedirs(dst)
File "/pkg/qct/software/python/2.5.2/.amd64_linux26/lib/python2.5/os.py", line 171, in makedirs
mkdir(name, mode)
OSError: [Errno 17] File exists: '//local/mnt/workspace/test/out'
<username:/local/mnt/workspace/username/Scripts>
Pythonコード
import os,shutil
def copytree(src, dst, symlinks=False, ignore=None):
for item in os.listdir(src):
s = os.path.join(src, item)
print s
d = os.path.join(dst, item)
print d
if os.path.isdir(s):
print "copying"
shutil.copytree(s, d, symlinks, ignore)
else:
shutil.copy2(s, d)
def main ():
src="//local/mnt/workspace/loc/04.01.01.00.303_HY11"
dst="//local/mnt/workspace/test"
copytree(src,dst)
if __name__ == '__main__':
main()