2015-02-03 2 views
0
from subprocess import call 

def change_attribute(filename,attrib): 
try: 
    call(["attrib ", attrib , filename]) 
except OSError as exception: 
    raise exception 

f1 = "D:\\Tests\\fileattrib\\file1.txt" 
att = ["+s","+h"] 
#att = "+s" // this works fine 
#time.sleep(5) 
change_attribute(f1,att) 

У меня есть функция change_attribute(), которая изменяет атрибуты файла.изменение атрибута файла с несколькими аргументами с использованием метода вызова

В приведенном выше скрипте он работает хорошо, если я заменяю 'list' att на 'string'.

Однако он бросает исключение "parameter format not correct ", если я передаю список ATT.

, что изменение не требует, чтобы принять список как arugment к методу. Пожалуйста, мне, как новичку в питоне. Любая помощь будет высоко оценен

ответ

1

call ожидает массив строк, а не массив, содержащий строку, массив строк, а другую строку.

Вы можете исправить это, выполнив

call(["attrib"] + attrib + ["filename"]) 
Смежные вопросы