2015-04-20 3 views
2

Ошибка чтения при не может быть открыт успешноPython Tar файл не может быть открыт успешно

«Ошибка чтения („не bzip2 файл“)»

Эта ошибка «Файл не может быть открыт/ файл успешно "чрезвычайно странно, поскольку не один или два дня назад это работало только сегодня, это не так, и я не могу понять, почему.

def main(sqldump_dict): 
    print 'in main' 
    import os 
    import re 
    count_aim = int(str(sqldump_dict["name"]).count(".gz")) 
    count_aim += int(str(sqldump_dict["name"]).count(".tar")) 
    count = 0 

    sqldump_dict["sql_name"] = sqldump_dict["name"] 
    old_tar_path = "" 
    old_tar_name = "" 
    gz_list = int(str(sqldump_dict["name"]).count(".gz")) 
    tar_list = int(str(sqldump_dict["name"]).count(".tar")) 
    while(count != count_aim): 
     if count > 0: 

      print str(os.path.join(sqldump_dict["path"] + old_tar_path)) 
      tar = tarfile.open(str(os.path.join(sqldump_dict["path"] + old_tar_path))) 
      tar.extractall(path=sqldump_dict["path"] + old_tar_path.replace(old_tar_name, "")) 
      tar.close() 
     else: 
      tar = tarfile.open(str(os.path.join(sqldump_dict["path"] + sqldump_dict["name"]))) 
      tar.extractall(path=sqldump_dict["path"]) 

      tar.close() 

      pat = re.compile(r'([^/]*)$') 

      old_tar_path = str(tar.members[0].path).replace("/", "\\") 
      pat_find = pat.findall(str(tar.members[0].path)) 
      old_tar_name = str(pat_find[0]) 
+0

Можем ли мы увидеть полное сообщение об ошибке, пожалуйста? Вы можете проверить формат файла, используя (из командной строки) 'файл' * tar_filename *. – cdarke

+0

«ReadError at/ файл не может быть успешно открыт», и кроме этого остается только «ReadError (« не файл bzip2 »,)» – will

+0

Ожидаете ли вы, что файл имеет сжатие «bzip2»? Вы попробовали команду 'file', которую я предложил? Похоже, что «tarfile» считает, что это должен быть файл bzip2, но это не так. – cdarke

ответ

0

я получил следующее сообщение об ошибке:

ReadError('not a bzip2 file',)

Это работает для меня python2.7:

sudo apt-get install python-dev 
sudo pip install backports.lzma 
Смежные вопросы