2011-12-28 7 views
3

У меня есть файлы, с которыми я работаю в скрипте python. Последнее требование заключается в том, что я перехожу в каталог, в который будут помещены файлы, и переименуйте все файлы, добавив дату и название проекта в начало имени файла, сохраняя исходное имя.переименование файлов в каталоге + подкаталоги в python

т.е. foo.txt становится 2011-12-28_projectname_foo.txt

Создание нового тега было достаточно легко, это просто процесс переименования, который расцепления меня.

+0

Вы посмотрели на [os.walk()] (http://docs.python.org/library/os.html#os.walk)? – cdhowie

+3

Было бы проще переименовать каталог ... чтобы он мог направить вас (вашего менеджера) к правильному проекту/дате ... без необходимости чрезмерно трудно найти кого-либо в каталоге, назвав все почти одинаково. – Ben

+0

нет, это не так. необходимо, чтобы файлы назывались так. – misterjones

ответ

1

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

import os 

sv_name="(whatever it's named)" 
today=datetime.date.today() 
survey=sv_name.replace(" ","_") 
date=str(today).replace(" ","_") 
namedate=survey+str(date) 

[os.rename(f,str(namedate+"_"+f)) for f in os.listdir('.') if not f.startswith('.')] 
6

Можете ли вы разместить то, что вы пробовали?

Я думаю, вам нужно просто использовать os.walk с os.rename.

Что-то вроде этого:

import os 
from os.path import join 

for root, dirs, files in os.walk('path/to/dir'): 
    for name in files: 
     newname = foo + name 
     os.rename(join(root,name),join(root,newname)) 
Смежные вопросы