@barswert

Не могу решить задачу ,написал прогу ,но выходит ошибка: invalid literal for int() with base 10: ''?

Задача написать прогу ,которая читает из файла текст (пример:a2b3) и записывает результат обратно в файл(пример:aabbb),но что-то пошло не так ,выдаёт ошибку:
Traceback (most recent call last):
File "test.py", line 9, in
output=s[i]*int(s[i+1])
ValueError: invalid literal for int() with base 10: ''
Вот сам код:
import re
import os
with open(os.path.join('/','home','barswert','python lessons','dataset_3363_2.txt')) as file:
    s=file.readline().strip()
    s=re.split("(\d*)", s)[:-1]
    out=open((os.path.join('/','home','barswert','python lessons','dataset_3363_2.txt')),'w')
    for i in range(len(s)):
        if i%2==0:
            output=s[i]*int(s[i+1])
            print(output)
            out.write(output )
        else:
            continue
out.close()

использую ubuntu+sublime

Update: помимо ошибки ,содержимое ,при записи файл, удаляется
  • Вопрос задан
  • 364 просмотра
Решения вопроса 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Если я правильно понял, то это
s=re.split("(\d*)", s)[:-1]
надо заменить на это:
s = [x for x in re.split("(\d+)", s) if x.strip()]

ну и цикл чуть изменить:
...
    output = ''
    for i in range(len(s)):
        if i%2==0:
            output += s[i]*int(s[i+1])
    print(output)
    out.write(output )
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Zoominger
@Zoominger Куратор тега Python
System Integrator
Попробуйте:
output=int(s[i])*int(s[i+1])
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы