Python 檔案 write() 方法



Python 檔案的 write() 方法將字串寫入檔案。當該方法將字串寫入檔案時,它首先將其寫入內部緩衝區;一旦該緩衝區已滿,內容就會被傳輸到當前檔案。由於這種緩衝機制,字串可能不會立即顯示在檔案中,直到呼叫 flush() 或 close() 方法。

如果當前檔案為空,則該方法從開頭新增內容;但如果它已經包含一些文字,則將此文字新增到檔案中的位置取決於檔案指標的位置;並且此位置根據檔案模式而變化。各種情況如下所示 -

  • 如果檔案以寫入模式 (w 或 w+) 開啟,則檔案中的現有文字將被擦除,並且檔案指標移動到檔案的開頭。因此,在這種情況下,write() 方法從開頭開始寫入。
  • 如果檔案以追加模式 (a 或 a+) 開啟,則現有文字將保持不變,並且檔案指標將保持在檔案末尾。因此,新文字將新增到現有內容之後。
  • 如果檔案以讀寫模式 (r+) 開啟,則指標移動到檔案開頭並替換檔案中的現有內容。但是,不會替換整個文字;相反,write() 方法僅用新字串中對應索引處的字元替換現有字串中的字元。
  • 如果檔案以讀取模式 (r) 開啟,則此方法無效。

語法

以下是 Python 檔案 write() 方法的語法 -

fileObject.write(str)

引數

  • str - 這是要寫入檔案中的字串。

返回值

此方法不返回值。

示例

考慮一個包含字串的演示檔案“foo.txt”。

This is 1st line
This is 2nd line
This is 3rd line
This is 4th line
This is 5th line

以下示例顯示了 Python 檔案 write() 方法的用法。演示檔案以寫入 (w) 模式開啟,因此檔案中的現有內容將被擦除,並使用此方法插入新內容。並且由於此方法不返回值,因此必須直接檢查檔案以檢視反映的變化。

# Open a file in write mode
fo = open("foo.txt", "w")
print("Name of the file: ", fo.name)

# Assuming file has following 5 lines
# This is 1st line
# This is 2nd line
# This is 3rd line
# This is 4th line
# This is 5th line

# Write a new line into the file
str = "This is the new line"
line = fo.write( str )

print("Check the file to see the reflected changes")

# Close opened file
fo.close()

當我們執行上述程式時,它會產生以下結果 -

Name of the file:  foo.txt
Check the file to see the reflected changes

示例

在上面的示例中,必須開啟檔案以檢查更改是否已反映。但我們也可以嘗試在終端本身顯示檔案內容。為此,一旦使用 write() 方法重寫檔案,我們關閉檔案。然後,此檔案再次以讀取 (r) 模式開啟,並使用 read() 方法讀取檔案內容。

# Open a file in write mode
fo = open("foo.txt", "w")
print("Name of the file: ", fo.name)

# Assuming file has following 5 lines
# This is 1st line
# This is 2nd line
# This is 3rd line
# This is 4th line
# This is 5th line

# Write a new line
fo.write("This is the new line")

# Close opened file
fo.close()

# Open the file again in read mode
fo = open("foo.txt", "r")

line = fo.read()
print("File Contents:", line)

# Close opened file again
fo.close()

在執行上述程式時,輸出將在終端上顯示如下 -

Name of the file:  foo.txt
File Contents: This is the new line

示例

如果我們嘗試以寫入 (w) 模式開啟目錄中不存在的檔案,則會建立一個具有給定名稱的新檔案。在以下示例中,write() 方法在此檔案上呼叫,並將新內容插入到其中。

# Open a non-existent file in write mode
fo = open("new.txt", "w")
print("Name of the file: ", fo.name)

fo.write("This is the new line")

print("Check the file to see the reflected changes")

# Close opened file
fo.close()

讓我們編譯並執行給定的程式,輸出將顯示如下 -

Name of the file:  new.txt
Check the file to see the reflected changes

示例

當檔案以追加 (a 或 a+) 模式開啟時,也可以使用 write() 方法。

在這個例子中,一個名為“foo.txt”的檔案以追加模式“a”開啟。通常,如果我們想將內容追加到檔案,我們會使用seek()方法將檔案指標移動到末尾,但這裡沒有必要。由於檔案是以追加模式開啟的,write()方法會在檔案末尾寫入內容。檔案內容會在終端本身顯示。

# Let the test file contain the following strings
# Hello!
# This is Tutorialspoint
# Welcome

# Open the test file in append mode
fo = open("test.txt", "a")
print("Name of the file: ", fo.name)

line = fo.write("This is the new line")

# Close opened file
fo.close()

# Open the file again in read mode
fo = open("test.txt", "r")

line = fo.read()
print("File Contents:", line)

# Close opened file again
fo.close()

程式編譯並執行後,輸出結果將在終端中顯示如下:

Name of the file:  test.txt
File Contents: Hello!
This is Tutorialspoint
WelcomeThis is the new line

示例

如果我們對使用讀寫模式(r+)開啟的檔案使用write()方法,指標會移動到檔案開頭並替換檔案中的現有內容。

在下面的例子中,我們以“r+”模式開啟一個現有的檔案“foo.txt”。write()方法用傳遞給它的新字串引數的對應索引替換檔案開頭現有字串的字元。

# Open the test file in append mode
fo = open("foo.txt", "r+")
print("Name of the file: ", fo.name)

fo.write("This is a new line")

print("Check the file to see the reflected changes")

# Close opened file again
fo.close()

# Open the file again in read mode
fo = open("foo.txt", "r")

line = fo.read()
print("File Contents:", line)

# Close opened file again
fo.close()

讓我們編譯並執行上面的程式,得到如下結果:

Name of the file:  foo.txt
File Contents: This is a new lineThis is 2nd line
This is 3rd line
This is 4th line
This is 5th line
python_file_methods.htm
廣告