У меня есть этот код:
from sys import argv
import os
bold = "\033[1m"
reset = "\033[0;0m"
try:
argv[1]
except IndexError:
print("\nNo arguments! Add \"-h\" or \"--help\" for more info." + bold + "\n\nNow look what you've done!" + reset)
else:
pass
if argv[1] == "-h" or "--help":
print("\nxxxx, version 0.0.2")
print("xxxx is a simple tool for the command line used for quickly saving\n\
chunks of text, while providing more functionality than the traditional method\n\
(e.g. echo \"HELLO WORLD\" > hi.txt) used in bash.")
print("\nUsage: sans-sheriff [text] [directory] [options]")
print("\nOptions:\n\
-h, --help Display this help message and exit.\n\
-v, --verbose Output more verbosity.\n\
-e=utf8, --encoding Sets the encoding. Default is utf-8.\n\
utf16\n\
utf32\n\
ascii\n\
iso (8859-1)\n\
-text Sets the filetype. Default is \".txt\".\n\
html\n\
rtf\n\
tex\n\
-o, --open Open the file directly after.\n\
\n\
e.g. xxxx \"Hello World\" /home/user/Documents/myfile -e=utf32")
else:
try:
argv[2]
except IndexError:
print("No directory argument! Add \"-h\" or \"--help\" fopr mor info." + bold + "\n\nNow look what you've done!" + reset)
else:
pass
usrtxt = argv[1]
usrdir = argv[2]
usrtxt = open(usrdir, "w")
Это, как предполагается, создает текстовые файлы на основе аргументы пользователей, как это:
xxxx \"Hello World\" /home/user/Documents/myfile
Но каждый раз, когда это запускается как пример, если, это просто загружает вывод, который был бы произведен когда -h
или --help
обсужден... Не кажется логичным, почему это сделало бы это, и я - настоящий новичок к Python также, таким образом, любая справка значительно ценилась бы!
Вы используете or
неправильно. Надлежащий способ сделать это в Вашем примере было бы:
if argv[1] == "-h" or argv[1] == "--help":
Или булев оператор, который описывает, что сделать с двумя различными сравнениями. Таким образом, то, что Вы обеспечили, было бы похоже на высказывание
keep_going = False
if argv[1] == "-h":
keep_going = True
if "--help":
keep_going = True
Который не имеет смысла. Технически просто наличие or "--help"
True
потому что "--help"
непустая строка.
Кроме того, благодаря Timo, Вы могли использовать
if argv[1] in ("-h", "--help"):
Который считают больше Python путем
Наконец, необходимо заглядывать к вещам как argparse для Python для надлежащей обработки аргументов, поскольку они не могут всегда быть в том же порядке.
В будущем вопросы строго относительно кода лучше подходят для Переполнения стека, которое, вероятно, лучше подходит для программирования вопросов.