Reputation: 47
I'm playing around with Python3 and every time I run the code Python3 ex14.py
below and I print the (f"Hi {user_name}, I'm the {script} script.")
I get the {user_name}
right but the {script}
shows the file I'm running plus the variable {user_name}
from sys import argv
script = argv
prompt = '> '
# If I use input for the user_name, when running the var script it will show the file script plus user_name
print("Hello Master. Please tell me your name: ")
user_name = input(prompt)
print(f"Hi {user_name}, I'm the {script} script.")
How can I print just the file I'm running?
Upvotes: 2
Views: 295
Reputation: 1004
The answer of timgeb is correct, but if you want to get rid of the path of the file you can use os.path.basename(__file__)
from the os lib.
In your code it would be something like :
from sys import argv
import os
script = argv
prompt = '> '
# If I use input for the user_name, when running the var script it will show the file script plus user_name
print("Hello Master. Please tell me your name: ")
user_name = input(prompt)
script = os.path.basename(__file__)
print(f"Hi {user_name}, I'm the {script} script.")
Upvotes: 0
Reputation: 78780
argv
collects all the command line parameters, including the name of the script itself. If you want to exclude the name, use argv[1:]
. If you want just the filename, use argv[0]
. In your case: script = argv[0]
.
Upvotes: 5