简体   繁体   中英

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?

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

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.")

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM