Programming

พิมพ์ชื่อ folder ลง Excel ด้วย Python

เราะจะเสียเวลาชีวิตนั่ง copy paste เองทำไม ในเมื่อมี python

การจะ copy ชื่อ folder จริงๆมันก็เป็นเรื่องง่ายๆแหละครับ ถ้าหลักสิบก็สบายๆ แต่ถ้าเป็นหลักร้อยหลักพัน เราะจะเสียเวลาชีวิตนั่ง copy paste เองทำไม ในเมื่อมี python

ตัวอย่างผลลัพธ์

นี่คือ code ที่เขียน เพื่ออ่านชื่อ folder และเขียนลงในไฟล์ excel (บันทึกลงเพียง column เดียว)

import os
from openpyxl import Workbook

# Define the folder path
folder_path = "folder"

# Create a new Excel workbook
workbook = Workbook()
sheet = workbook.active

# Get a list of folder names in the specified directory
folder_names = os.listdir(folder_path)

# Iterate over the folder names and write them to Excel
for i, folder_name in enumerate(folder_names, start=1):
    sheet.cell(row=i, column=1).value = folder_name

# Save the workbook
workbook.save("folder_names.xlsx")

อธิบายโค้ด

  • import os : เป็นการ import module ชื่อ os เพื่อใช้ฟังก์ชันในการติดต่อกับ Operating System. ในที่นี้จะเอาไว้ใช้ access และ list ชื่อโฟลเดอร์
  • from openpyxl import Workbook : import คลาส Workbook จากไลบรารี่ openpyxl ซึ่ง Workbook ใช้สร้าง new Excel workbook
  • folder_path = "folder" : บรรทัดนี้เป็นการระบบ path ของ folder ที่โปรแกรมจะอ่านชื่อ folder. สามารถเปลี่ยนชื่อ folder ได้ตามใจชอบ
  • workbook = Workbook() : เป็นการสร้าง new instance ของ Workbook class ซึ่งอ้างไปอ้างถึง Excel workbook
  • sheet = workbook.active : กำหนด active sheet ของ workbook โดยเก็บไว้ที่ตัวแปร sheet โดยปกติแล้ว workbook ที่สร้างใหม่จะมีอย่างน้อยอยู่แล้ว 1 sheet
  • folder_names = os.listdir(folder_path) : บรรทัดนี้ใช้ os.listdir() ฟังก์ชันเพื่อรับค่าชื่อ folder ใน directory folder_path
  • code ใน loop for ที่เป็นการเริ่มปฏิบัติการเขียนข้อความลง excel
    • for i, folder_name in enumerate(folder_names, start=1) : เป็นการ Loop list ของ folder_name จากนั้นทำการ assign แต่ละชื่อโฟลเดอร์ลงไปในตัวแปรชื่อว่า folder_name และฟังก์ชันที่ชื่อว่า enumrate ใช้ในการดึงค่า index (เก็บไว้ในตัวแปร i) และค่า folder_name
    • sheet.cell(row=i, column=1).value = folder_name : set ค่าของ cell ที่ row ที่ i และ column 1 (column แรก) ใน sheet ไปยัง folder_name เมื่อวนไป loop ถัดไป ค่า i ก็จะบวกเพิ่มขึ้นเรื่อยๆ เช่น แถวที่ 2 คอลัมที่ 1
  • workbook.save("folder_names.xlsx") : บันทึก workbook ไปยังไฟล์ชื่อ folder_names.xlsx (คุณอาจเปลี่ยนแปลงเป็นชื่ออื่นก็ได้)

ลองเอาไปประยุกต์ใช้กันดูครับ

Tags