Python命令行参数语法错误



我试图打印出命令行参数,但是当我尝试有两个print语句时,我得到一个语法错误。这有什么原因吗?

这是我的终端输入:python3 test.py example_Resume.pdf softwareengineering

还有,我如何处理命令行参数之间有一个空格?

import sys

def main(argv):
{

print(f"Name of the script      : {sys.argv[0]=}")
print(f"Arguments of the script : {sys.argv[1:]=}") // This line errors
}

if __name__ == "__main__":
main(sys.argv[1:])

处理命令行参数的最好方法是使用argparse包,它负责shell注入,可选的默认参数。

文档:Argpase

这是我在项目中使用的一个示例。

import argparse    

# >>>>>>>>>>>>>>>>>>>>>>> ARGUMENT PARSING <<<<<<<<<<<<<<<<<<<<<<<<<<<<
def args():
"""
Used to get the list of arguments paseed to the class
"""
parser = argparse.ArgumentParser()

parser.add_argument('-r','--raw_file',type=str,
help='It is used to get the raw input file for parsing',
required=True)

args = parser.parse_args()

return args.raw_file
def main():
# PARSED RAW FILE
raw_file=self.args()

if __name__ == '__main__':

main()

除了其他评论者指出的问题之外,你的问题还在于花括号。

我试过你的代码没有他们:

import sys

def main(argv):
print(f"Name of the script      : {sys.argv[0]=}")
print(f"Arguments of the script : {sys.argv[1:]=}") 

if __name__ == "__main__":
main(sys.argv[1:])

大括号在Python中有不同的含义。

关于在main中不使用参数时传递参数的问题是有效的。

最新更新