2013-07-23 2 views
0

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

Что мне нужно сделать:

Посмотрите на много превосходят файлы в подпапки, переименовывать их в соответствии с информацией в файле и сохранить их во всех в одной папке, где-то еще.

Данные структурированы следующим образом:

Главная Папка

Subfolder1

File1

file2

file3

...

Около ста вложенных папок и несколько файлов в каждой вложенной папки.

Отсюда я хочу вытащить имя и номер детали и дату из файла и использовать их для переименования файла excel. Не знаете, как переименовать файл.

Затем сохраните его в другом месте. У меня возникли проблемы с поиском всех этих функций, советами?

+0

Можете ли вы извлечь название компании и т. Д. Из файла? т. е. ваш вопрос конкретно о переименовании или о том, как получить данные из файла? Кроме того, что вы пробовали? –

ответ

1

Проверьте os и os.path модуль для перечисления содержимого папки (walk, listdir) и работать с именами путей (abspath, basename и т.д.)

Кроме того, shutil имеет некоторые интересные функции для копирования вещей. Проверьте copyfile и укажите параметр dst на основе данных, которые вы читаете из файла excel.

Эта страница может помочь вам получать в данных Excel: http://www.python-excel.org/

Вы, вероятно, хотите, чтобы иметь некоторый код высокого уровн как это:

for subfolder_name in os.listdir(MAIN_FOLDER): 
    # exercise left to reader: filter out non-folders 
    subfolder_path = os.path.join(MAIN_FOLDER, subfolder_name) 
    for excel_file_name in os.listdir(os.path.join(MAIN_FOLDER, subfolder_name)): 
     # exercise left to reader: filter out non-excel-files 
     excel_file_path = os.path.join(subfolder_path, excel_file_name) 
     new_excel_file_name = extract_filename_from_excel_file(excel_file_path) 
     new_excel_file_path = os.path.join(NEW_MAIN_FOLDER, subfolder_name, 
      new_excel_file_name) 
     shutil.copyfile(excel_file_path, new_excel_file_path) 

Вы должны будете предоставить extract_filename_from_excel_file самостоятельно, используя модуль xlrd с сайта, о котором я упоминал.

+0

Выглядит хорошо - я пишу это сейчас. Один вопрос: В "for excel_file_name в os.list ..." есть подпапка подпапки или подпапка_папка? – user2417886

+0

У меня также возникли проблемы с выяснением xlrd. Какие-либо предложения? – user2417886

+0

FTFY: это 'subfolder_name'. Что касается 'xlrd', у меня нет большого опыта. Просмотрите учебник, подобный этому: http://www.youlikeprogramming.com/2012/03/examples-reading-excel-xls-documents-using-pythons-xlrd/ –

Смежные вопросы