日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python修改文件内容最后一行_关于python:如何修改文件的最后一行?

發布時間:2025/3/20 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python修改文件内容最后一行_关于python:如何修改文件的最后一行? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我文件的最后一行是:

29-dez,40,

如何修改該行,使其顯示:

29-Dez,40,90,100,50

注意:我不想寫新行。我想在29-Dez,40,后面加一行新值。

我是Python的新手。我在處理文件時遇到了很多困難,對于我來說,我看到的每一個例子似乎都很困難。

很難,因為很難。對于具有可變長度行的文本文件,您所做的并不真正明智。

請參閱stackoverflow.com/questions/328059/…,了解此問題的后續操作。

我對你的問題作了相當大的修改,如果我誤解了什么,請告訴我。S.lott也是對的,雖然看起來應該很簡單,但是修改一個文件實際上是相當困難的。

除非文件很大,否則您可能會發現將整個文件讀取到數據結構(可能只是行列表)中會更容易,然后在內存中修改數據結構,最后將其寫回文件。

另一方面,您的文件可能真的很大-至少有多個GBS。在這種情況下:最后一行可能以一個新行字符結束,如果您尋求該位置,您可以在最后一行末尾用新文本覆蓋它。

所以也許:

f = open("foo.file","wb")

f.seek(-len(os.linesep), os.SEEK_END)

f.write("new text at end of last line" + os.linesep)

f.close()

(不同平臺上的模線端)

對于python 3.2及更高版本,只能從文件(文本文件)的開頭執行SEEK操作。

要擴展Doug所說的內容,為了將文件內容讀取到數據結構中,可以使用文件對象的readlines()方法。

下面的代碼示例將文件讀取到"行"列表中,編輯最后一行,然后將其寫回文件:

#!/usr/bin/python

MYFILE="file.txt"

# read the file into a list of lines

lines = open(MYFILE, 'r').readlines()

# now edit the last line of the list of lines

new_last_line = (lines[-1].rstrip() +",90,100,50")

lines[-1] = new_last_line

# now write the modified list back out to the file

open(MYFILE, 'w').writelines(lines)

如果文件非常大,那么這種方法將無法很好地工作,因為這樣每次都會將所有的文件行讀取到內存中,并將它們寫回文件中,這是非常低效的。不過,對于一個小文件來說,這很好。

我最近寫了一個腳本來做類似的事情。它將遍歷一個項目,查找所有模塊依賴項,并添加任何缺少的導入語句。我不會把這篇文章和整個腳本搞混,但我會展示我是如何修改我的文件的。

import os

from mmap import mmap

def insert_import(filename, text):

if len(text) < 1:

return

f = open(filename, 'r+')

m = mmap(f.fileno(), os.path.getsize(filename))

origSize = m.size()

m.resize(origSize + len(text))

pos = 0

while True:

l = m.readline()

if l.startswith(('import', 'from')):

continue

else:

pos = m.tell() - len(l)

break

m[pos+len(text):] = m[pos:origSize]

m[pos:pos+len(text)] = text

m.close()

f.close()

摘要:此代碼段接受要插入的文件名和文本塊。它找到已經存在的最后一個導入語句,并將文本粘貼到該位置。

我建議最關注的部分是MMAP的使用。它允許您以處理字符串的相同方式處理文件。非常方便。

不要直接處理文件,以類的形式創建一個適合您需要的數據結構,并對文件方法進行讀/寫。

總結

以上是生活随笔為你收集整理的python修改文件内容最后一行_关于python:如何修改文件的最后一行?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。