หมดปัญหาไฟล์รก หาไฟล์ไม่เจอ ใช้ 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
Comentários