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
广告