Добавление в начало файла в python

Кто-нибудь знает простой способ войти в файл в начале и добавить в него на первой строке?

Я попытался сделать следующее:

f.seek(0)

f.write("....")

f.close() 

Единственная проблема в том, что он не добавляет новую первую строку с тем, что я хочу, а заменяет ее.

Кто-нибудь знает какой-нибудь способ, либо при записи файла добавить последнюю строку сверху, либо после его закрытия и повторного открытия добавить строку в первую строку без перезаписи или замены чего-либо?


person learner    schedule 03.07.2014    source источник


Ответы (1)


Хотя уродливо это работает:

# read the current contents of the file
f = open('filename')
text = f.read()
f.close()
# open the file again for writing
f = open('filename', 'w')
f.write("This is the new first line\n")
# write the original contents
f.write(text)
f.close()

Кроме того, слово, которое вы ищете, находится в предварительном ожидании. Также я не думаю, что это сработает, если вы не можете загрузить файл в память (если он слишком большой).

Если он слишком большой, вы можете написать строку, а затем написать строку за строкой.

Альтернативный (не тестировался)

вы можете использовать fileinput

>>> import fileinput
>>> for linenum,line in enumerate( fileinput.FileInput("file",inplace=1) ):
...   if linenum==0 :
...     print "new line"
...     print line.rstrip()
...   else:
...     print line.rstrip()
...

Из: Как вставить новую строку перед первой строкой в ​​файле с помощью Python?

person 1478963    schedule 03.07.2014