top of page

จัดไฟล์ ย้ายโฟลเดอร์ Python File Management

Updated: Aug 15, 2021

หมดปัญหาไฟล์รก หาไฟล์ไม่เจอ ใช้ Python ช่วยจัดระเบียบไฟล์บนคอมพ์ เรียนกับ Ultimate Python

การจัดการไฟล์ในคอมพิวเตอร์

เราจะมาเรียนรู้วิธีการเพิ่ม ลบ ย้าย เปลี่ยนชื่อ Directory และ file ที่ต้องการ เพื่อให้เราสามารถจัดการกับไฟล์ต่างๆ อย่างอัตโนมัติได้ด้วยคำสั่ง Python


library ที่ใช้

• os

os เป็น library ที่เก็บรวมรวบชุดคำสั่งต่างๆ ที่ใช้ทำงานกับ OS ในเครื่องของเรา ที่มีคำสั่งพื้นฐานในการจัดการกับไฟล์ โฟลเดอร์ที่เราต้องการได้ ไม่ว่าจะย้าย บันทึก เปลี่ยนชื่อ หรือลบไฟล์ โฟลเดอร์ที่ต้องการ


In [1]:
import os

• shutil

shutil เป็น library ที่ใช้เพื่อจัดการไฟล์เอกสาร ซึ่งจะมีหลายคำสั่งที่สามารถใช้งานได้สะดวกกว่า os บางคำสั่งจึงจะใช้จาก library นี้แทน


In [2]:
import shutil


directory โฟลเดอร์เก็บ file

ในคอมพิวเตอร์จะมีลักษณะแบบ tree ที่ลักษณะการอ้างอิงที่อยู่ของ directory ต่อจาก directory ก่อนหน้าและแตกสาขาออกไปเรื่อยๆ พูดง่ายๆ ก็คือ จะมีลักษณะเป็นโฟลเดอร์ซ้อนโฟลเดอร์ลงไปเรื่อยๆ

โดยการระบุ directory หรือ file ที่ต้องการจะใช้การระบุสิ่งที่เรียกว่า path ซึ่งเป็นการบ่งบอกว่า directory หรือ file นั้นเก็บไว้ที่ directory ใดในคอมพิวเตอร์

• absolute path

absotute path คือการระบุ directory ที่ต้องการดูโดยการระบุ path ทั้งหมดตั้งแต่ directory เริ่มต้นจนถึง file หรือ directory ที่ต้องการ เช่นในลักษณะของ path ที่ได้จากคำสั่ง .getcwd() ที่ได้ absolute path ของ directory ปัจจุบันออกมา

• relative path

relative path คือการระบุ directory ที่ต้องการดูโดยการระบุ path เพียงบางส่วนซึ่งอ้างอิงจาก directory ปัจจุบัน เช่น ปัจจุบันเรากำลังใช้งาน directory ที่ path os.getcwd() หากเราต้องการเข้าไปยัง directory ใดที่อยู่ใน diretory ปัจจุบัน สามารถใช้ชื่อ directory เพื่อระบุเป็น relative path ได้เลย


ditrectory ปัจจุบัน

ผลลัพธ์ที่ได้จาก .getcwd() จะเป็น string ที่ระบุที่อยู่ของ directory ปัจจุบัน นั่นหมายถึง directory ที่ไฟล์ notebook ที่กำลังใช้งานอยู่ ถูกบันทึกอยู่นั่นเอง

โปรแกรมออนไลน์รันอยู่บน server ที่ใช้ระบบปฏิบัติการที่มีพื้นฐานจาก linux ทำให้ path ไฟล์สำหรับโปรแกรมออนไลน์เป็น path ของ linux ซึ่งมีลักษณะต่างจาก path ของ mac และ windows แต่มีการทำงานเหมือนกัน


In [3]:
os.getcwd()
Out[3]:
'/home/jovyan'


ข้อมูลใน directory

เราจะใช้วิธีการระบุ path ซึ่งสามารถทำได้ทั้งแบบ absolute หรือ relative เพื่อใช้ระบุ directory ที่ต้องการทำงาน ร่วมกับคำสั่ง .listdir() เพื่อดูข้อมูลใน directory

• list ข้อมูลที่อยู่ใน directory ปัจจุบัน เป็น string

คำสั่ง .listdir() จะสร้าง list ของชื่อไฟล์ใน directory ที่กำหนด ออกมาเป็น list ของ string โดยเราสามารถกำหนด directory ที่สนใจได้โดยการระบุเป็น string ระหว่าง () หากไม่ระบุจะเข้าไปดูในโฟลเดอร์ปัจจุบัน

ระบุ relative path เพื่อเพื่อดูข้อมูล

ในการใช้คำสั่ง .listdir() ต่อไปนี้จะใช้การระบุ relative path เพื่อเข้า directory Excel ที่อยู่ใน directory ปัจจุบัน


In [4]:
os.listdir('Excel')
Out[4]:
['East.xlsx', 'West.xlsx', 'North.csv', 'South.xlsx']

ระบุ absolute path เพื่อเพื่อดูข้อมูล

ในการใช้คำสั่ง .listdir() ต่อไปนี้จะใช้การระบุ absolute path เพื่อเข้า directory Excel ที่อยู่ใน directory ปัจจุบัน



In [5]:
abs_path = os.getcwd() + '/Excel'
abs_path
Out[5]:
'/home/jovyan/Excel'





In [6]:
os.listdir(abs_path)
Out[6]:
['East.xlsx', 'West.xlsx', 'North.csv', 'South.xlsx']



สร้าง directory ใหม่

สามารถใช้คำสั่ง .mkdir() โดยรับ relative path หรือ absolute path ของ directory ที่ต้องการสร้าง เช่นการสร้าง directory ที่ชื่อว่า New Excel ไปใน directory ปัจจุบันโดยการระบุ relative path สามารถทำได้ดังนี้


In [7]:
os.mkdir('New Excel')


ย้ายไฟล์ file

สามารถใช้ .move() เพื่อรับ 2 ค่า คือ ที่อยู่ของ file ที่ต้องการ move และ directory ที่ต้องการ move file นี้ไป เช่น การ ย้าย file South.xlsx ใน directory Excel ไปยัง directory ปัจจุบันซึ่งสามารถหา absolute path สำหรับ directory ปัจจุบันได้จาก os.getcwd()


In [8]:
shutil.move('Excel/South.xlsx','New Excel')
Out[8]:
'New Excel/South.xlsx'

file ใน directory New Excel



In [9]:
os.listdir('New Excel')
Out[9]:
['South.xlsx']


file ใน directory Excel



In [10]:
os.listdir('Excel')
Out[10]:
['East.xlsx', 'West.xlsx', 'North.csv']


• ย้ายทุกไฟล์ file


In [11]:
for file_name in os.listdir('Excel'):
 print(os.getcwd() + '/Excel/' + file_name)
 shutil.move(os.getcwd() + '/Excel/' + file_name,'New Excel')
/home/jovyan/Excel/East.xlsx /home/jovyan/Excel/West.xlsx /home/jovyan/Excel/North.csv 
In [12]:
os.listdir('Excel')
Out[12]:
[]
In [13]:
os.listdir('New Excel')
Out[13]:
['East.xlsx', 'West.xlsx', 'North.csv', 'South.xlsx']



เสร็จสิ้นos การจัดการกับ file


เรียนเรียน Python จาก 0 ฉบับวัยทำงานยุคใหม่

เริ่มไว ใช้ได้ทันที พร้อมการดูแลจากผู้สอนโดยตรง และกลุ่มแลกเปลี่ยนความรู้

เรียนรู้เกี่ยวกับคอร์สเรียนเพิ่มเติม https://ultimatepython.teachable.com/p/python-automation




2,835 views0 comments

Comments


bottom of page