Text25. Дано целое число K и текстовый файл. Удалить из файла абзац с номером K (абзацы отделяются друг от друга одной или несколькими пустыми строками). Пустые строки, предшествующие и следующие за удаляемым абзацем, не удалять. Если абзац с данным номером отсутствует, то оставить файл без изменений.
Решение на Python 3:
import codecs
import random
f_input = "text25_in.txt"
f_output = "text25_out.txt"
#GenerateNumbers(f_input)
print("Read from:",f_input)
print("Write to:",f_output)
K = random.randrange(1,14)
#K = 1
print("K = ",K)
try:
with codecs.open(f_input, 'r', 'utf-8') as f_in, \
codecs.open(f_output, 'w', 'utf-8') as f_out:
line1 = f_in.readline()
if line1.strip() == "":
p = 0
else:
p = 1
if p != K or line1.strip() == "":
f_out.write(line1)
for line in f_in:
if line1.strip() == "" and line.strip() != "":
p += 1
line1 = line
if p != K or line.strip() == "":
f_out.write(line)
except IOError:
print('Open error: ',f_input)