Как остановить файл-ролик от вывода чего-либо и зависания на процессе - proUbuntu
0 голосов
/

Я пишу программу, которая использует file-roller для извлечения файла ISO. Однако я продолжаю получать предупреждение, и я не хочу видеть это предупреждение. Также file-roller зависает после этого предупреждения. Gtk-Message: GtkDialog mapped without transient parent. This is discouraged. Как только это попадет, file-roller просто зависнет и ничего не сделает. Я использую file-roller через командную строку с file-roller -e <PATH> <ISO IMAGE>. У меня простой вопрос, как я могу отключить предупреждения и стандартный вывод команды и предотвратить зависание процесса при появлении предупреждения?

Сценарий:

def unzip_iso(filepath, verbose=False, directory_name="ISO_dir"):
    """
      Unzip the ISO file into a directory

      :param filepath: the path to the ISO file
      :param verbose: verbosity output
      :param directory_name: the name of the ISO directory
      :return: True if it worked, False if it didn't
    """
    def create_rand_dir_name(chars=string.ascii_letters, verbose=False):
        """
          Create a random directory name
        """
        if verbose: LOGGER.debug("Creating random directory name..")
        retval = set()
        for _ in range(8):
            retval.add(random.choice(chars))
        return ''.join(list(retval))

    dirname = create_rand_dir_name(verbose=verbose)
    if verbose: LOGGER.debug("Creating directory: {}/{}/*..".format(directory_name, dirname))
    create_dir(directory_name + "/" + dirname)
    full_dir_path = os.getcwd() + "/" + directory_name + "/" + dirname
    if verbose: LOGGER.debug("Directory created, full path being saved to: {}..".format(full_dir_path))

    cmd = "file-roller -e {} {}".format(full_dir_path, filepath)
    if verbose: LOGGER.debug("Starting command: {}..".format(cmd))
    stdout_data = subprocess.check_call(cmd, shell=True)
...