python argparse如何将整个命令作为字符串

sod*_*ate 7 python command-line command-line-arguments argparse

我有一个名为的脚本patchWidth.py,它使用以下命令解析命令行参数argparse

# read command line arguments -- the code is able to process multiple files
parser = argparse.ArgumentParser(description='angle simulation trajectories')
parser.add_argument('filenames', metavar='filename', type=str, nargs='+')
parser.add_argument('-vec', metavar='v', type=float, nargs=3)
Run Code Online (Sandbox Code Playgroud)

假设此脚本使用以下内容运行:

>>> python patchWidth.py file.dat -vec 0. 0. 1.
Run Code Online (Sandbox Code Playgroud)

有没有办法在 python 中将整个内容作为字符串获取?我希望能够将使用什么参数运行的命令打印到输出文件。

Twi*_*Sim 9

是的,您可以使用 sys 模块:

import sys
str(sys.argv) # arguments as string
Run Code Online (Sandbox Code Playgroud)

请注意,这argv[0]是脚本名称。有关更多信息,请查看sys 模块文档


小智 8

我不知道这是否是最好的选择,但是......

import sys

" ".join(sys.argv)
Run Code Online (Sandbox Code Playgroud)

将返回一个字符串 /the/path/of/file/my_file.py arg1 arg2 arg3