Попытка переместить файлы из logfile_directory в tmp_directory в блоках по 7 с использованием random.sample.Если в папке менее 7 файлов, она просто переместит оставшиеся файлы.Однако, когда я пытаюсь переместить менее 7 файлов, я получаю сообщение об ошибке, поскольку tmp_folder пытается скопировать в себя.
Попытка с использованием команды glob.glob, но она также не может работать.Не уверен, что я делаю неправильно, просто перемещаю файлы, а не папку.Буду признателен за любую помощь.
Запуск одного и того же кода на другом компьютере и получение следующего сообщения, где, как и раньше, сообщение об ошибке было связано с копированием tmp_folder в себя.Ничего особенного в этом файле нет, он создает ошибку, поэтому не знаю, почему я сейчас получаю это.
Message = [WinError 5] Доступ запрещен: 'c: \ securelog_test \ bdlog.txt' Source= C: \ Users \ jarra \ source \ repos \ archive_test \ archive_test.py StackTrace: файл "\ archive_test.py", строка 72, в shutil.move (путь, tmp_folder)
logfile_directory = 'c:\\securelog_test\\'
archive_folder = 'c:\\securelog_archive\\'
workfiles_folder = 'c:\\securelog_workfiles\\'
tmp_folder = 'c:\\securelog_test\\temp\\'
completed_folder = 'c:\\securelog_test\\completed\\'
#count how many files are in the log file folder
onlyfiles = [f for f in listdir(logfile_directory) if isfile(join(logfile_directory, f))]
print('-----------------')
print (len(onlyfiles))
if len(onlyfiles) > 7:
#move 7 random files to the temp folder for archiving
files = os.listdir(logfile_directory)
for fileName in random.sample(files, min(len(files), 8)):
path = os.path.join(logfile_directory, fileName)
shutil.move(path, tmp_folder)
else:
#if there are less than 7 files move them
#for file in glob.glob(logfile_directory):
# shutil.move(file, tmp_folder)
for fileName in os.listdir(logfile_directory):
path = os.path.join(logfile_directory, fileName)
shutil.move(path, tmp_folder)