在Python中,向文件中写入数据的步骤为打开文件、写入数据和关闭文件。
1 打开文件
1.1 打开文件的基本操作
在《Python中文件的读取》中提到,Python的内嵌函数open()的第二个参数表示打开文件的方式。如果向文件中写入数据,则需要以“可写”的方式打开文件,代码如下所示。
fout = open(‘output.txt’, ‘w’)
其中,第一个参数表示要写入的文件,第二个参数’w’表示“可写”方式,返回值fout是文件对象。
1.2 注意事项
’w’表示“可写”方式,该方式的作用是如果指定文件存在,则清空文件中的内容,如果指定文件不存在,则创建文件。
除了’w’方式之外,还包含几种常用方式,如表1所示。
表1 文件打开方式
打开方式 |
含义 |
r |
只读方式,如果文件不存在,则报错。 |
w |
只写方式,如果文件存在,则清空文件,不存在则新建文件。 |
a |
只写方式,如果文件存在,则在文件已存在内容之后添加新内容,不存在则新建文件。 |
r+ |
读写方式,如果文件存在,不清空文件,从文件起始位置覆盖写入,不存在则报错。 |
w+ |
读写方式,如果文件存在,清空文件,不存在则创建文件。 |
a+ |
读写方式,如果文件存在,则在文件已存在内容之后添加新内容,不存在则新建文件。 |
2 写入数据
2.1 写入数据的基本操作
通过open()函数得到的文件对象调用write()函数写入数据,代码如下所示:
num = fout.write(‘Hello Python.’)
其中,write()函数的参数为写入的数据,返回值表示写入文件中的数据数量,该数量保存到变量num中。此时,num的值是13,表示向文件中写入13个字节的数据。
2.2 注意事项
write()函数的参数类型是字符串,如果要写入的数据是数值型或其他类型,可以使用str()函数将其转换为字符串,代码如下所示:
a = 1
fout.write(str(a))
也可以使用格式化操作符%进行类型的转换,代码如下所示:
fout.write(‘%d’%a)
其中,字符串中的%d对应的是数值型,%s对应的是字符串型,%g或%f对应浮点型。如果在字符串中包含多个格式化操作符,则需要使用元组,而且元组中的元素个数与类型要与格式化操作符对应,代码如下所示:
fout.write(‘在%d年前,我看到了%f只%s’%(3, 2.1, ‘骆驼’))
3 关闭文件
使用close()函数关闭已经打开的文件,代码如下所示:
fout.close()