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

โปรแกรม Python แสดงชื่อสคริปต์ที่กำลังรัน

งานคือพัฒนาโปรแกรม Python ที่พิมพ์ชื่อสคริปต์ของมันเองที่กำลังถูกรัน โค้ดเรียบง่าย เราใช้ sys.argv

ใน C ใช้ int main(int argc, char** argv) ซึ่งรับพารามิเตอร์หลายตัว: ตัวแรกคือจำนวนอาร์กิวเมนต์ ตัวที่สองคืออาร์เรย์ที่มีชื่ออาร์กิวเมนต์ทั้งหมด

ใน Python ใช้ sys.argv ซึ่งเป็นลิสต์ของอาร์กิวเมนต์บรรทัดคำสั่ง sys.argv[0] คือชื่อสคริปต์

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

import sys

def main():
    my_program = sys.argv[0]
    # หาตำแหน่งของ backslash สุดท้าย (Windows path separator)
    my_index = my_program.rfind("\\") + 1
    # ตัดเอาเฉพาะชื่อไฟล์
    my_program_name = my_program[my_index:]
    print("Program Name: %s" % my_program_name)

if __name__ == "__main__":
    main()

ผลลัพธ์

Program Name: python277.py

วิธีอื่นที่ง่ายกว่า (Cross-platform)

import os
import sys

print("Program Name:", os.path.basename(sys.argv[0]))
print("Full Path:", sys.argv[0])
print("Directory:", os.path.dirname(sys.argv[0]))

คำอธิบาย: os.path.basename() ทำงานได้ทั้ง Windows และ Unix/Linux ไม่ต้องหา backslash หรือ forward slash เอง