Python writelines() 方法



Python 的 writelines() 方法將一系列字串寫入檔案。該序列可以是任何產生字串的可迭代物件,通常是字串列表。

當該方法將一系列字串寫入檔案時,它首先寫入內部緩衝區;一旦該緩衝區已滿,內容就會被傳輸到當前檔案。由於這種緩衝機制,文字可能直到呼叫 flush() 或 close() 方法後才會實際顯示在檔案中。

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

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

語法

以下是 Python 檔案 writelines() 方法的語法:

fileObject.writelines( sequence )

引數

  • sequence − 這是字串的序列。

返回值

此方法不返回值。

示例

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

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

以下示例演示了 Python 檔案 writelines() 方法的用法。演示檔案以寫入 (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
seq = ["This is the new line", '\n', "This is another new line"]
line = fo.writelines(seq)

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

示例

在上面的例子中,需要開啟檔案來檢查更改是否生效。但是我們也可以嘗試在終端本身顯示檔案內容。為此,一旦使用 `writelines()` 方法重寫檔案,我們就關閉檔案。然後,以讀取 (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
seq = ["This is the new line", '\n', "This is another new line"]
line = fo.writelines(seq)

# 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
This is another new line

示例

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

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

# Write a new text
seq = ["Hello", '\n', "Welcome to Tutorialspoint"]
line = fo.writelines(seq)

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+) 模式開啟時,也可以使用 `writelines()` 方法。

在這個例子中,一個名為“foo.txt”的檔案以追加模式“a”開啟。由於檔案以追加模式開啟,`writelines()` 方法將內容寫入檔案的末尾。使用 `write()` 方法,新行緊跟在字串的最後一個字元之後;但使用 `writelines()` 方法,由於換行符和字串作為物件傳遞給列表,新字串將追加到下一行。檔案內容將在終端本身顯示。

# 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)

seq = ['\n', "This is the new line"]
fo.writelines(seq)

# 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
Welcome
This is the new line

示例

如果在使用讀寫模式 (r+) 開啟的檔案上使用 `writelines()` 方法,指標將移動到檔案的開頭,並替換檔案中現有的內容。

在下面的示例中,我們以“r+”模式開啟現有檔案“foo.txt”。檔案中現有的字元將從開頭被傳遞作為列表的字串物件中的字元替換。檔案中剩餘的文字保持不變。

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

seq = ["This is a new line", '\n', "This is another new line", '\n']
fo.writelines(seq)

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
Check the file to see the reflected changes
File Contents: This is a new line
This is another new line
d line
This is 4th line
This is 5th line
python_file_methods.htm
廣告