Machine LearningPython

เทคนิค Copy ไฟล์จาก Share Drive มายัง My Drive แบบ Batch ด้วย Python และ Colab

การใช้ Colab และ Python เขียนคำสั่ง Batch Copy ไฟล์จาก Share Drive มายัง Drive ส่วนตัวของเรา

หลายคนคงต้องการหาวิธีนี้ เทคนิคสร้าง Colab และ Python เขียนคำสั่ง Batch Copy ไฟล์จาก Share Drive มายัง Drive ส่วนตัวของเรา

ปัญหาหนึ่งคือ เรามี Sharedrive แล้วบังเอิญเราถูกจำกัดสิทธิในการ Share ออกไปให้คนอื่นหรือข้างนอกเป็นได้แค่ Viewer ซึ่งถ้าให้ดาวน์โหลดด้วยวิธีนี้ก็ดูจะถึกแลดูเหนื่อยเกินมนุษย์แม้ว่ามันจะแม่นยำที่สุด

ชั้นวรรณะต่ำสุดแชร์ไม่ได้
ชั้นวรรณะต่ำสุดแชร์ไม่ได้
วิธีนี้ก็โอเคแต่ถึกเกินไป
วิธีนี้ก็โอเคแต่ถึกเกินไป

ใช้เวลาค้นหาวิธียาวนานจากหลายๆ กลุ่มสุดท้ายก็ได้วิธีนี้มา ให้เราสร้าง Short Cut ของ Folder บน Share Drive ที่เราต้องการจะดาวน์โหลดแบบ Batch ครับในตัวอย่างตั้งชื่อ Shortcut ว่า “TH”

 

สร้าง shortcut
สร้าง shortcut

คลิกขวาเลือก “Add shortcut to Drive” แล้วเลือกไปที่ My Drive ครับ จะมี Folder ของ Shortcut ปรากฏขึ้นแบบภาพข้างล่าง:

Shortcut โฟลเดอร์ชื่อ "TH"
Shortcut โฟลเดอร์ชื่อ “TH”

สร้าง Folder ใหม่ขึ้นมาสำหรับ Patse  ทุกสิ่งที่จะ Copy ไป ในตัวอย่างตั้งชื่อว่า “THX” สำหรับวางไฟล์ที่เราจะทำการ Batch Copy

สร้าง Notebook ใหม่บน Colab ตั้งชื่ออะไรก็ได้ ตัวอย่างผมสร้างดังนี้:

*หมายเหตุ: เอาไปใช้ได้เลยนะแค่เปลี่ยนชื่อ Folder เล็กน้อยตรง “TH” และ “THX” Clone ได้เลยจาก link นี้:

https://colab.research.google.com/drive/1FsCZSu-jlkAGn05BnE_eD0JZysnsOdmi?usp=sharing

เอาล่ะ ใส่คำสั่งต่อไปนี้ ให้เรา Mount Google drive ของเราก่อน:

from google.colab import drive
drive.mount('/gdrive')

ทำการ Run หลังจากนั้นเราต้องเอา Authen Key จาก Google Drive เราด้วย:

%cd /gdrive/MyDrive/TH

มันจะให้เราเปิดไปเอา Authen Key มากรอก

ให้ Copy แล้วเอาไปกรอกซะ มันจะได้ค่า UID ของ Folder มาตามนี้:

/gdrive/.shortcut-targets-by-id/<<รหัส UID>>/TH

ต่อมาให้ ทำการ Copy ทุกไฟล์ใน  TH ไปยัง THX โดยใช้คำสั่ง

!cp -r '/gdrive/.shortcut-targets-by-id/<<รหัส UID>>/TH/.' '/gdrive/My Drive/THX'

รอมันประมวลผลครับ จะได้ดังนี้:

มันจะบอกว่า Copy อะไรไปแล้วบ้าง
มันจะบอกว่า Copy อะไรไปแล้วบ้าง

ไปดูที่ Folder ปลายทางระหว่างที่มัน Copy (ซึ่งจะนานหน่อย) จะเห็นไฟล์มาแล้ว!

มันกำลัง ทยอย Copy ไปยัง Folder “THX” ครับ ก็ตั้ง Batch ให้มันเตือนเวลาที่ Copy เสร็จเอาละกัน ส่วนไฟล์ของ Code ใน Colab ก็ตามนี้ครับ

from google.colab import drive
drive.mount('/gdrive')

%cd /gdrive/MyDrive/TH

!cp -r '/gdrive/.shortcut-targets-by-id/<<UID>>/TH/.' '/gdrive/My Drive/THX'

หวังว่าจะได้ประโยชน์กันนะครับ

Asst. Prof. Banyapon Poolsawas

อาจารย์ประจำสาขาวิชาการออกแบบเชิงโต้ตอบ และการพัฒนาเกม วิทยาลัยครีเอทีฟดีไซน์ & เอ็นเตอร์เทนเมนต์เทคโนโลยี มหาวิทยาลัยธุรกิจบัณฑิตย์ ผู้ก่อตั้ง บริษัท Daydev Co., Ltd, (เดย์เดฟ จำกัด)

Related Articles

Back to top button

Adblock Detected

เราตรวจพบว่าคุณใช้ Adblock บนบราวเซอร์ของคุณ,กรุณาปิดระบบ Adblock ก่อนเข้าอ่าน Content ของเรานะครับ, ถือว่าช่วยเหลือกัน