Я пишу программу, которая использует file-roller для извлечения файла ISO. Однако я продолжаю получать предупреждение, и я не хочу видеть это предупреждение. Также после этого предупреждения зависает file-roller. [F4]. Как только это ударит, file-roller будет просто висеть и ничего не делать. Я использую file-roller через командную строку с file-roller -e <PATH> <ISO IMAGE>. Мой вопрос прост, как я могу отключить предупреждения и stdout в команде и остановить процесс зависания при появлении предупреждения?
Сценарий:
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)