sys.argv [1] [-4:]脚本含义

问题描述 投票:0回答:1

我实际上是在深入学习python,并看到有人使用这种参数来编写代码。由于我以前从未见过,所以我想知道是否有人可以帮助我更好地了解它的工作原理。

这里是代码:

if __name__ == "__main__":
   if sys.argv[1][-4:] != '.dfa':
      print("UNEXPECTED INPUT FILE FORMAT\n")
      sys.exit()
   dfa = DFA()
   inputfile = open(sys.argv[1], 'r')
   inputstring = inputfile.read().split('\n\n');
python python-3.x
1个回答
0
投票

[无论何时运行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"

© www.soinside.com 2019 - 2024. All rights reserved.