2015-07-29 6 views
2

Первый вопрос. Я новичок в программировании, а тем более в python. Как говорится в заголовке, я пытаюсь найти файлы, которые были созданы или изменены за последние 24 часа, а затем переместите эти файлы в другой каталог. Я могу найти файлы, но я не могу понять, как перемещать файлы, соответствующие этим критериям. Мой сценарий до сих пор:Найти файлы по дате создания/изменения, а затем перейти в другой каталог в Python


 
for root,dirs,files in os.walk('source\folder'):
for file_name in files: now = dt.datetime.now() before = now - dt.timedelta(hours=24) path = os.path.join(root,file_name) st = os.stat(path)
mod_time = dt.datetime.fromtimestamp(st.st_ctime) if mod_time < before: print('%s modified %s'%(path,mod_time))

Я попытался использовать shutil, чтобы переместить выход, но я получаю сообщение об ошибке;

TypeError: coercing to Unicode: need string or buffer, datetime.datetime found

Я попытался найти решение в Интернете, но не повезло. Даже не уверен, могу ли я сделать то, что я пытаюсь сделать с тем, как я это построил? Заранее спасибо.

+0

Похоже, вы передаете 'shutil' объект' datetime.datetime' вместо строки с именем файла. Можете ли вы показать код, который вы использовали в этой попытке? – TigerhawkT3

+0

@ TigerhawkT3 Я пытался использовать shutil следующим образом: shutil.move (mod_time, 'dest \ path') – MisterToe

+0

Как я и предполагал, вы переносите дату. Вам нужно переместить файл. – TigerhawkT3

ответ

4

Вместо:

shutil.move(mod_time, 'dest\path') 

сделать:

shutil.move(os.path.join(root, file_name), 'dest\path') 

Это передает эту функцию имя файла вместо даты.

+0

Я тоже это пробовал. Я получаю: IOError: [Errno 2] Нет такого файла или каталога: 'sample.txt' – MisterToe

+0

Нам нужно будет объединить имя с каталогом. Дай мне минуту. – TigerhawkT3

+0

Ты колени пчелы. Я пытался разобраться в этом больше дня, и я в недоумении. – MisterToe