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

歡迎訪問 生活随笔!

生活随笔

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

python

python入门文件读取与写入_初学者Python:读取和写入同一文件

發(fā)布時間:2023/12/10 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python入门文件读取与写入_初学者Python:读取和写入同一文件 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

每個打開的文件都有一個隱式指針,該指針指示將在何處讀取和寫入數(shù)據(jù)。通常,它默認為文件的開頭,但是如果您使用a(追加)模式,則默認為文件的結尾。還值得注意的是,w即使您添加+到該模式,該模式也會截斷您的文件(即刪除所有內容)。

每當您讀取或寫入N個字符時,讀/寫指針都會在文件中向前移動該數(shù)量。我發(fā)現(xiàn),如果您記得那些,可以將其像舊的盒式磁帶一樣思考。因此,如果執(zhí)行以下代碼:

fd = open("testfile.txt", "w+")

fd.write("This is a test file.\n")

fd.close()

fd = open("testfile.txt", "r+")

print fd.read(4)

fd.write(" IS")

fd.close()

...它應該最終打印This,然后將文件內容保留為This IS a test file.。這是因為首字母read(4)返回文件的前4個字符,因為指針位于文件的開頭。它將指針留在緊隨其后的空格字符處This,因此以下代碼write(" IS")用空格(與已有的空格相同)覆蓋接下來的三個字符,然后IS替換現(xiàn)有的is。

您可以使用seek()文件的方法跳到特定點。在上面的示例之后,如果執(zhí)行以下操作:

fd = open("testfile.txt", "r+")

fd.seek(10)

fd.write("TEST")

fd.close()

...然后您會發(fā)現(xiàn)該文件現(xiàn)在包含This IS a TEST file.。

所有這一切都適用于Unix系統(tǒng),并且可以測試這些例子,以確保。但是,我有混合的問題read(),并write()在Windows系統(tǒng)上。例如,當我在Windows機器上執(zhí)行該第一個示例時,它可以正確打印This,但是之后再檢查該文件時,該文件將write()被完全忽略。但是,第二個示例(使用seek())在Windows上似乎可以正常工作。

總而言之,如果您想在Windows中從文件的中間進行讀取/寫入,建議您始終使用顯式seek()而不是依賴于讀取/寫入指針的位置。如果您只做讀或寫操作,那就很安全了。

最后一點-如果您將Windows上的路徑指定為文字字符串,請記住轉義反斜杠:

fd = open("C:\\Users\\johndoe\\Desktop\\testfile.txt", "r+")

或者,您可以通過r在開始處使用來使用原始字符串:

fd = open(r"C:\Users\johndoe\Desktop\testfile.txt", "r+")

或最可移植的選擇是使用os.path.join():

fd = open(os.path.join("C:\\", "Users", "johndoe", "Desktop", "testfile.txt"), "r+")

您可以在官方Python文檔中找到有關文件IO的更多信息。

總結

以上是生活随笔為你收集整理的python入门文件读取与写入_初学者Python:读取和写入同一文件的全部內容,希望文章能夠幫你解決所遇到的問題。

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