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

时间:2015-08-12 18:36:43

标签: python variables csv argparse

我正在尝试使用Python选项/变量作为我将在脚本中使用的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'

1 个答案:

答案 0 :(得分:1)

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

如果您尝试通过将.csv附加到主机名的来创建文件名,则需要一些内容:

file = '%s.csv' % hostname

或者:

file = hostname + '.csv'

此外,您需要在访问parser.parse_args()之前致电args.hostname