2013-10-28 3 views
0

Я пытаюсь найти тип файла, используя файл с подпроцессаPython подпроцесс Файл не найден

cwdir = os.getcwd() 
    Fileinput=cwdir+"/"+'testfile.zip' 
    print "Current Directory %s"% cwdir 
    Fileformat=subprocess.Popen('file' + Fileinput) 

я получаю OSError: [Errno 2] Нет такого файла или каталога. Я проверял и файл существует в пути. Спасибо за любую помощь в этом.

ответ

1

Добавить пространство между 'file' и fileinput

Fileformat = subprocess.Popen('file ' + Fileinput) 
#        ^

В противном случае file/current/path/testfile.zip трактуется как исполняемый путь вместо file.

Или используйте следующую форму:

Fileformat = subprocess.Popen(['file', Fileinput]) 

вы должны пройти stdout=subprocess.PIPE в Popen и читать с помощью Fileformat.stdout.read() если вы хотите получить вывод команды.

Как насчет использования subprocess.check_output?

>>> subprocess.check_output(['file', '/etc/passwd']) 
'/etc/passwd: ASCII text\n' 
+0

Я по-прежнему получаю ту же ошибку даже после добавления пространства для файла. Однако я изменил его на check_output, и он работает. Благодарю. – user1719051

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