今天给大家讲讲如何通过 Python 来写文件。在日常开发中,将数据写入到文件中存储起来非常常见,废话不多说,开干!
一、开始
上一节 《Python 如何读取 txt 文件 ?》中,我们说到了通过 open() 函数可以读取文件内容,其实,还可以通过 open() 来写文件。仅需要在调用 open() 的时候额外传个参数即可。
代码示例如下:
# 定义需要写入的文件名 file_name = 'test.txt' # 调用 open() 函数时,指定模式为 w, w 是 write 的缩写,表示写模式 with open('test.txt', 'w') as file: # 写入内容 file.write("第一行数据")
open() 函数允许我们调用时,指定相关模式:
- r: 只读模式;
- w: 写模式,往文件里面写内容;
- a: 追加模式, 往文件的末尾追加内容;
- r+: 读写模式;
执行上面的代码,会在工程的目录下创建一个名为 test.txt 的文件,内容如下:
python写入文件结果
注意:Python 只能将字符串写入到文本中,对于非字符串类型,你需要通过 str() 函数强转一下。
二、写入多行
接下来,我们尝试写入多行数据:
# 定义需要写入的文件名 file_name = 'test.txt' # 调用 open() 函数时,指定模式为 w, w 是 write 的缩写,表示写模式 with open('test.txt', 'w') as file: # 写入内容 file.write("第一行数据") file.write("第二行数据")
执行上面的代码,看下效果:
python写入多行内容结果
哎?怎么连在一起了!
原因是 write() 函数不会主动在文本写入末尾添加换行符,需要我们手动添加:
file.write("第一行数据 \n") file.write("第二行数据 \n")
再次执行代码就 ok 了:
python写入多行内容附加换行符
三、追加内容到文件中
我们再调用 open() 函数时,若不指定为追加模式 a, 默认会覆盖原有的内容。修改之前的代码,如下:
# 定义需要写入的文件名 file_name = 'test.txt' # 调用 open() 函数时,指定模式为追加模式 with open('test.txt', 'a') as file: # 写入内容 file.write("第三行数据 \n") file.write("第四行数据 \n")
执行代码,效果如下:
python写入内容,模式为追加模式
可以看到,是在之前内容的末尾追加的新内容,而不是覆盖原有内容。