Sử dụng sys.argv[0] để lấy đường dẫn script, trích xuất tên file.
Code
import sys
def main():
program_path = sys.argv[0]
# Tách tên file từ đường dẫn
idx = program_path.rfind("\\") + 1 # Windows
# idx = program_path.rfind("/") + 1 # Linux/Mac
program_name = program_path[idx:]
print(f"Program Name: {program_name}")
if __name__ == "__main__":
main()
Kết quả
Program Name: python277.py
Cách hiện đại hơn (Python 3.4+)
from pathlib import Path
print(Path(__file__).name) # Chỉ tên file
print(Path(__file__).stem) # Tên file không extension
Lưu ý
sys.argv[0]có thể là đường dẫn tương đối hoặc tuyệt đối tùy cách chạy.- Khi chạy
python -m module,sys.argv[0]là-m. __file__không khả dụng trong REPL interactif.