我实际上正在深入学习python,并看到了带有这种论点的某人的代码。 由于我以前从未见过这个,我想知道是否有人可以帮助我更好地了解它是如何工作的。
这是代码:
if __name__ == "__main__":
if sys.argv[1][-4:] != '.dfa':
print("UNEXPECTED INPUT FILE FORMATn")
sys.exit()
dfa = DFA()
inputfile = open(sys.argv[1], 'r')
inputstring = inputfile.read().split('nn');
每当运行 Python 程序时,sys.argv
都会自动成为表示运行程序时提到的参数的字符串列表。
因此,使用sys.argv[1]
与查看列表的第一个元素相同,更准确地说,查看运行 Python 程序时提供的第一个参数。从Python的工作方式来看,它将永远是一个字符串。
因此,如果在脚本中您要执行以下操作:
python helloworld.py file1.txt file2.jpg
而你的程序包含sys.argv[1]
,你可以看到:
print(sys.argv[1])
# > "file1.txt"
现在,由于sys.argv[1]
是一个字符串,执行 sys.argv[1][-4:] 只是查看sys.argv[1]
中包含的字符串的最后四个字符,因此您将拥有:
print(sys.argv[1][-4:])
# > ".txt"
因此,总而言之,您的代码所做的只是检查运行程序时第一个参数中提到的文件的扩展名是否为 .dfa,或者换句话说,您提到的作为第一个参数的文件名是否以".dfa"
结尾。