Я пытаюсь скопировать файлы из одного места назначения в другое, и я следую этой программе, и я не знаю, что я сделал ошибку, но файлы не копируются в папку назначения.https://gist.github.com/alexwlchan/c2adbb8ee782f460e5ec
Я не слишком много знаю о программировании, я просто следую учебному пособию.
Я добавил дополнительно в этот код
src = ("F:\\Work\\")
dst = ("F:\\ws\\")
Поэтому, пожалуйста, поправьте меняесли я не прав.
Заранее спасибо!
import filecmp
import os
import shutil
src = ("F:\\Work\\")
dst = ("F:\\ws\\")
def _increment_filename(filename, marker='-'):
basename, fileext = os.path.splitext(filename)
if marker not in basename:
base = basename
value = 0
else:
base, counter = basename.rsplit(marker, 1)
try:
value = int(counter)
except ValueError:
base = basename
value = 0
while True:
if value == 0:
value += 1
yield filename
value += 1
yield '%s%s%d%s' % (base, marker, value, fileext)
def copyfile(src, dst):
if not os.path.exists(src):
raise ValueError('Source file does not exist: {}'.format(src))
if not os.path.exists(os.path.dirname(dst)):
os.makedirs(os.path.dirname(dst))
while True:
dst_gen = _increment_filename(dst)
dst = next(dst_gen)
if os.path.exists(dst):
if filecmp.cmp(src, dst):
return dst
else:
try:
src_fd = os.open(src, os.O_RDONLY)
dst_fd = os.open(dst, os.O_WRONLY|os.O_EXCL|os.O_CREAT|os.O_EXLOCK)
# Read 100 bytes at a time, and copy them from src to dst
while True:
data = os.read(src_fd, 100)
os.write(dst_fd, data)
# When there are no more bytes to read from the source
# file, 'data' will be an empty string
if not data:
break
# If we get to this point, then the write has succeeded
return dst
except OSError as e:
if e.errno != 17 or e.strerror != 'File exists':
raise
else:
print('Race condition: %s just popped into existence' % dst)
finally:
os.close(src_fd)
os.close(dst_fd)
# Copying to this destination path has been unsuccessful, so increment
# the path and try again
dst = next(dst_gen)
def move(src, dst):
dst = copyfile(src, dst)
os.remove(src)
return dst
В программе нет ошибок, программа работает нормально, но папка назначения пуста.
Ожидаемым результатом должно быть копирование файлов в целевую папку и ниже ожидаемого результата в соответствии с программой
Если файл уже существует в dst, он не будет перезаписан, но:
* If it is the same as the source file, do nothing
* If it is different to the source file, pick a new name for the copy that
is distinct and unused, then copy the file there.