/ / Python - Excelの列リストから複数のフォルダを作成 - python、excel、pandas、openpyxl

Python - Excelの列リストから複数のフォルダを作成する - python、excel、pandas、openpyxl

私は基本的に、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))

回答:

回答№1は1

すべての列値を反復処理する必要があります。これは私にとってはうまくいきます(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))

回答№2の場合は0

forループ?

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))