Использование Script = argv в Python3 - PullRequest
0 голосов
/ 26 июня 2018

Я играю с Python3, и каждый раз, когда я запускаю код Python3 ex14.py ниже и печатаю (f"Hi {user_name}, I'm the {script} script."), я получаю {user_name} правильно, но {script} показывает файл, который я запускаю, плюс переменную {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.")

Как мне распечатать только файл, который я запускаю?

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Ответ Timgeb верен, но если вы хотите избавиться от пути к файлу, вы можете использовать os.path.basename(__file__) из os lib.

В вашем коде это будет что-то вроде:

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.")
0 голосов
/ 26 июня 2018

argv собирает все параметры командной строки, включая имя самого скрипта. Если вы хотите исключить имя, используйте argv[1:]. Если вы хотите просто имя файла, используйте argv[0]. В вашем случае: script = argv[0].

...