2013-06-18 1 views
0

Итак, я пишу скрипт python, который откроет файл tar, и если в нем будет каталог, мой скрипт откроет этот каталог и проверит файлы ...Как проверить, что там после unzipiping tar-файла

E = raw_input("Enter the tar file name: ") // This will take input from the user 
tf = tarfile.open(E) // this will open the tar file 

Теперь, что лучший способ проверить, что «tf» имеет каталог или нет? Вместо того, чтобы переходить на мой терминал и делать ls, я хочу сделать что-то в том же скрипте python, который проверяет, есть ли каталог после распаковки tar.

ответ

0

В Python вы можете проверить, существуют ли пути с помощью os.path.exists (е) команды, где е является строковым представлением файла и путь к нему:

import os 

path = 'path/filename' 

if os.path.exists(path): 
    print('it exists') 

EDIT:

Объект tarfile имеет метод «getnames()», который дает пути всех объектов в файле tar.

paths = tf.getnames() #returns list of pathnames 
f = paths[1] #say the 2nd element in the list is the file you want 

tf.extractfile(f) 

Say есть файл с именем "file1" в каталоге "S3". Тогда один из элементов tf.getnames() будет 'S3/file1'. Затем вы можете извлечь его.

+0

, но я открываю tar-файл, и я хочу проверить, есть ли что-нибудь в нем. Предположим, я открыл tar-файл, и он получил мне каталог «S3». Я хочу открыть «S3». Как я могу это сделать в моем скрипте Python – Nick

+0

tf.getnames() предоставляет пути всех файлов внутри объекта tar, а затем вы можете извлечь их с помощью extractfile() – xgord