私のスクリプトに引数を渡そうとしていますが、何らかの理由で-t
を指定した場合は、スクリプトに空の文字列として表示されます。 --time
と指定すると、正しい値が得られます。どうして?コマンドライン引数が空の文字列として表示されます
import sys, getopt, time
def main(argv):
inputfile = ''
outputfile = ''
sleeptime = 6
if len(sys.argv) == 1:
print("No arguments supplied")
print('Usage: test.py -i <inputfile> -o <outputfile> -t <1-24>')
sys.exit()
try:
opts, arg = getopt.getopt(argv, "i:o:t", ["ifile=", "ofile=", "time="])
except getopt.GetoptError:
print('Incorrect options.')
print('Usage: test.py -i <inputfile> -o <outputfile> -t <1-24>')
sys.exit()
for opt, arg in opts:
if opt in ("-i", "--ifile"):
inputfile = arg
elif opt in ("-o", "--ofile"):
outputfile = arg
elif opt in ("-t", "--time"):
print("time = ", arg)
sleeptime = int(arg)
else:
print("Unknown arg")
sys.exit()
print(sleeptime)
if __name__ == "__main__":
main(sys.argv[1:])
私はかなりここからコードをリッピング:https://www.tutorialspoint.com/python/python_command_line_arguments.htm
['argparse'](https://docs.python.org/3/library/argparse.html)を使用しないのはなぜですか?それは文字通り[getoptのドキュメント](https://docs.python.org/3/library/getopt.html)が示唆しているものです。 – jonrsharpe
私は提案を感謝しますが、これは私の質問に答えることはありません。 – shaboinkin
...私は答えとして投稿しませんでした。 – jonrsharpe