Python - создание нескольких папок из списка столбцов Excel - PullRequest
0 голосов
/ 14 мая 2018

Я в основном пытаюсь заставить Python создать группу папок в каталоге с именем каждой папки на основе списка в файле Excel. Список находится в столбце D с заголовком «Имя папки».

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

Ваша помощь очень ценится - я новичок в этом! `

import os
import openpyxl


def folder_creation(EXCEL_FILE_DIRECTORY, FOLDER_CREATION_LOCATION, EXCEL_FILE_NAME):
   os.chdir (EXCEL_FILE_DIRECTORY)
   workbook = openpyxl.load_workbook (EXCEL_FILE_NAME)
   sheet = workbook.get_sheet_by_name ('Sheet1')
   folderName = sheet ['D2'].value
   baseDir = FOLDER_CREATION_LOCATION 
   os.makedirs(os.path.join(baseDir, folderName))
   print ("\nFolder created in: ", os.path.join(baseDir, folderName))

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Вы должны перебрать все значения столбцов. Это работает для меня (openpyxl v2.5):

def folder_creation(EXCEL_FILE_DIRECTORY, FOLDER_CREATION_LOCATION,  EXCEL_FILE_NAME):
    os.chdir(EXCEL_FILE_DIRECTORY)
    workbook = openpyxl.load_workbook(EXCEL_FILE_NAME)
    sheet = workbook.get_sheet_by_name('Sheet1')

    col_values = [cell.value for col in sheet.iter_cols(
        min_row=2, max_row=None, min_col=4, max_col=4) for cell in col]

    for value in col_values:       
        folderName = value
        baseDir = FOLDER_CREATION_LOCATION
        os.makedirs(os.path.join(baseDir, folderName))
        print("\nFolder created in: ", os.path.join(baseDir, folderName))
0 голосов
/ 14 мая 2018

А за цикл?

import os
import openpyxl


def folder_creation(EXCEL_FILE_DIRECTORY, FOLDER_CREATION_LOCATION, EXCEL_FILE_NAME):
   os.chdir (EXCEL_FILE_DIRECTORY)
   workbook = openpyxl.load_workbook (EXCEL_FILE_NAME)
   sheet = workbook.get_sheet_by_name ('Sheet1')
   baseDir = FOLDER_CREATION_LOCATION 
   col = sheet['D']

   for cell in col:
        folderName = cell.value
        os.makedirs(os.path.join(baseDir, folderName))
        print ("\nFolder created in: ", os.path.join(baseDir, folderName))
...