sys.argv[1]的最后4个字符 script 意义

2024-06-16 13:57:23 发布

您现在位置:Python中文网/ 问答频道 /正文

实际上,我正在深入学习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');

Tags: 代码nameformatinputifmainsysexit
1条回答
网友
1楼 · 发布于 2024-06-16 13:57:23

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

相关问题 更多 >