將行前置到文件的開(kāi)頭我可以使用單獨(dú)的文件來(lái)完成此操作,但如何在文件的開(kāi)頭添加一行?f=open('log.txt','a')f.seek(0) #get to the first positionf.write("text")f.close()由于文件以追加模式打開(kāi),因此從文件末尾開(kāi)始寫入。
3 回答

阿晨1998
TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊
在模式'a'
或者'a+'
,任何寫操作是在文件的最后完成,即使在當(dāng)當(dāng)前時(shí)刻write()
功能被觸發(fā)文件的指針是不是在文件的結(jié)尾:任何文字之前,指針移動(dòng)到文件末尾。你可以用兩種方式做你想做的事。
第一種方法,如果沒(méi)有問(wèn)題將文件加載到內(nèi)存中,可以使用:
def line_prepender(filename, line): with open(filename, 'r+') as f: content = f.read() f.seek(0, 0) f.write(line.rstrip('\r\n') + '\n' + content)
第二種方式:
def line_pre_adder(filename, line_to_prepend): f = fileinput.input(filename, inplace=1) for xline in f: if f.isfirstline(): print line_to_prepend.rstrip('\r\n') + '\n' + xline, else: print xline,
我不知道這種方法是如何工作的,如果它可以在大文件上使用。傳遞給輸入的參數(shù)1允許在適當(dāng)?shù)奈恢弥貙懸恍? 以下行必須向前或向后移動(dòng)才能進(jìn)行就地操作,但我不知道機(jī)制

夢(mèng)里花落0921
TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊
在我熟悉的所有文件系統(tǒng)中,您無(wú)法就地執(zhí)行此操作。您必須使用輔助文件(然后可以重命名該文件以獲取原始文件的名稱)。
添加回答
舉報(bào)
0/150
提交
取消