今天给大家讲讲如何通过 Python 来写文件。在日常开发中,将数据写入到文件中存储起来非常常见,废话不多说,开干!

一、开始

上一节 《Python 如何读取 txt 文件 ?》中,我们说到了通过 open() 函数可以读取文件内容,其实,还可以通过 open() 来写文件。仅需要在调用 open() 的时候额外传个参数即可。

代码示例如下:

# 定义需要写入的文件名
file_name = 'test.txt'

# 调用 open() 函数时,指定模式为 w, w 是 write 的缩写,表示写模式
with open('test.txt', 'w') as file:
    # 写入内容
    file.write("第一行数据")

open() 函数允许我们调用时,指定相关模式:

执行上面的代码,会在工程的目录下创建一个名为 test.txt 的文件,内容如下:

python写文件操作(python从零开始写文件)(1)

python写入文件结果

注意:Python 只能将字符串写入到文本中,对于非字符串类型,你需要通过 str() 函数强转一下。

二、写入多行

接下来,我们尝试写入多行数据:

# 定义需要写入的文件名
file_name = 'test.txt'

# 调用 open() 函数时,指定模式为 w, w 是 write 的缩写,表示写模式
with open('test.txt', 'w') as file:
    # 写入内容
    file.write("第一行数据")
    file.write("第二行数据")

执行上面的代码,看下效果:

python写文件操作(python从零开始写文件)(2)

python写入多行内容结果

哎?怎么连在一起了!

原因是 write() 函数不会主动在文本写入末尾添加换行符,需要我们手动添加:

file.write("第一行数据 \n")
file.write("第二行数据 \n")

再次执行代码就 ok 了:

python写文件操作(python从零开始写文件)(3)

python写入多行内容附加换行符

三、追加内容到文件中

我们再调用 open() 函数时,若不指定为追加模式 a, 默认会覆盖原有的内容。修改之前的代码,如下:

# 定义需要写入的文件名
file_name = 'test.txt'

# 调用 open() 函数时,指定模式为追加模式
with open('test.txt', 'a') as file:
    # 写入内容
    file.write("第三行数据 \n")
    file.write("第四行数据 \n")

执行代码,效果如下:

python写文件操作(python从零开始写文件)(4)

python写入内容,模式为追加模式

可以看到,是在之前内容的末尾追加的新内容,而不是覆盖原有内容。