Python,使用选项变量作为文件名

Python, use option variable as file name

我正在尝试使用 Python option/variable 作为我将在脚本中使用的 filename.csv 文件的基础。

这是我的代码:

def get_args():
    '''This function parses and return arguments passed in'''
    # Assign description to the help doc
    global hostname
    global username
    global password
    global file
    parser = argparse.ArgumentParser()
    parser.add_argument('--hostname', required=True)
    parser.add_argument('--username', default='root', type=str)
    parser.add_argument('--password', default='(&653hE@lU')
    hostname = args.hostname
    username = args.username
    password = args.password
    args = parser.parse_args()
    file = hostname.csv

我在 运行 时收到以下错误:

./4collect.py --hostname bar 
Traceback (most recent call last):
  File "./4collect.py", line 82, in <module>
    get_args()
  File "./4collect.py", line 67, in get_args
    parser.add_argument('--file', default=format(args.hostname)).csv
AttributeError: '_StoreAction' object has no attribute 'csv'

您正在尝试访问名为 hostname 的变量的 csv 属性,该变量当然不存在,因为 hostname 只是一个字符串,而字符串不存在有一个 .csv 属性。

如果您尝试通过将 .csv 附加到主机名的 来创建文件名,您需要类似的东西:

file = '%s.csv' % hostname

或者:

file = hostname + '.csv'

此外,您需要在 访问args.hostname.

之前调用parser.parse_args()