Вы можете использовать itertools.islice
прочитать первые N строк и дифферента оттуда. islice
работает так же, как и фрагмент списка (например, mylist[0:N:1]
), но на любом типе итератора, такого как файловый объект.
import os
import itertools
# create test file
with open('test.txt', 'w') as fp:
fp.writelines('{}\n'.format(i) for i in range(1,11))
# invent some input
del_line = int('4')
# now do the work
with open('test.txt') as infp, open('newtest.txt', 'w') as outfp:
outfp.writelines(itertools.islice(infp, 0, del_line-1, 1))
next(infp)
outfp.writelines(infp)
os.rename('newtest.txt', 'test.txt')
# see what we got
print(open('test.txt').read())
Вы можете скопировать содержимое файла в переменную, за исключением строки, которую вы хотите удалить, а затем воссоздать файл. :) –
Обратите внимание, что кто-то может ввести значение нецелого значения ... – RomanPerekhrest