2015-08-12 5 views
-5

Я пытаюсь использовать опцию/переменную Python в качестве основы для файла filename.csv, который я буду использовать в скрипте.Python, используйте опционную переменную как имя файла

Вот мой код:

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='(&[email protected]') 
    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' 
+0

Образец кода не смог создать отображаемую вами ошибку. '.csv' не в том месте. – hpaulj

ответ

1

Вы пытаетесь получить доступ к атрибуту переменной с именем hostname, который, конечно, Безразлично csv 't существует, потому что hostname - это просто строка и строки не имеют атрибута .csv.

Если вы пытаетесь создать имя файла, добавляя .csv к значению из имени хоста, вам необходимо somethingl IKE:

file = '%s.csv' % hostname 

Или:

file = hostname + '.csv' 

Кроме того, вам нужно будет звоните parser.parse_args()до Доступ к args.hostname.

Смежные вопросы