我正在编写一个代码,其中我应该使用“sys.argv”来读取文本文件。我需要两个不同的输出,具体取决于输入参数。如果终端中的参数仅为“message.txt”,我希望输出为:
Anna
Hello Everyone
Kalle
Hi there
Anna
Coffee break?
Pelle
Absolutely
Kalle
Sure
Anna
Great, see you downstairs in 5 minutes
但是,如果输入是“Lab2_1.py”和“message.txt”,我想将文本文件发送到一个函数,在该函数中打印另一个输出。这个函数可以用,我以前试过
我在为输入参数考虑某种if语句,但我无法让它工作。现在,我将参数发送到函数的主要函数是(按照我希望的方式工作):
messages = read_file(sys.argv[1])
name1 = input('Enter a name to search for: \n')
display_entry(name1, messages)
我在想这样的事情(行不通):
if len(sys.argv) == 1:
messages = read_file(sys.argv)
print(messages)
else:
messages = read_file(sys.argv)
name1 = input('Enter a name to search for: \n')
display_entry(name1, messages)
因此,第一条语句将仅以“原始”形式打印文本文件,就像上面的第一个代码块一样,而另一条语句将文本文件发送到函数并创建另一个输出。终端中最多有2个参数
有没有办法解决这个问题?谢谢:)
根据Python docs
因此
if len(sys.argv) == 1:
将始终计算为True
更改为
if len(sys.argv) == 2:
应该会有所帮助sys.argv
的第一项始终是正在执行的python文件的名称。这意味着len(sys.argv) == 1
将是真的,即使没有给出任何参数要解决此问题,您需要检查
len(sys.argv) == 2
或3
:相关问题 更多 >
编程相关推荐