Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมพิมพ์ชื่อไฟล์สคริปต์ Python เอง (Script Name)

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

หลักการทำงาน

  • โมดูล sys เก็บอาร์กิวเมนต์บรรทัดคำสั่ง (command line arguments) ไว้ในลิสต์ sys.argv
  • อิลิเมนต์แรก (sys.argv[0]) คือ ชื่อไฟล์สคริปต์ (อาจเป็น relative path)
  • ใช้ os.path.abspath() เพื่อแปลงเป็น absolute path

ขั้นตอนการเขียนโปรแกรม

  1. Import โมดูล sys และ os
  2. พิมพ์ os.path.abspath(sys.argv[0])
  3. เสร็จแล้ว - ได้ absolute path ของสคริปต์

ตัวอย่างโค้ด

import sys
import os

# พิมพ์ absolute path ของไฟล์สคริปต์ที่กำลังรัน
print(os.path.abspath(sys.argv[0]))

ตัวอย่าง Output

C:\Users\username\Projects\myscript.py
# หรือใน Linux/macOS
/home/username/projects/myscript.py

ข้อสังเกตเพิ่มเติม

  • หากรันใน interactive shell (REPL) sys.argv[0] อาจเป็น '' หรือ '-c'
  • หากต้องการแค่ชื่อไฟล์ (ไม่รวม path) ใช้ os.path.basename(sys.argv[0])
  • ใน Python 3.4+ สามารถใช้ __file__ ได้เช่นกัน (แต่ไม่ทำงานใน REPL)

สรุป

การดึงชื่อไฟล์สคริปต์ผ่าน sys.argv[0] เป็นวิธีมาตรฐานและน่าเชื่อถือ สามารถนำไปใช้ใน logging, debugging หรือแสดงข้อมูลให้ผู้ใช้ได้


หากมีข้อสงสัย สามารถถามได้ในส่วนความคิดเห็นครับ