Search code examples
pythonpython-3.xargvsys

Using Script = argv in Python3


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?


Solution

  • 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].