开发者学堂课程【Python 语言基础 3:函数、面向对象、异常处理:文件写入】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:
https://developer.aliyun.com/learning/course/601/detail/8771文件写入
内容介绍:
一、write( )
二、a 表示追加内容
三、x 用来新建文件
四、+ 为操作符增加功能
输入:
file_name =' demo .txt '
with open(file_name , encoding= ' utf-8 ') as file_obj:
write()
来向文件中写入内容
如果操作的是一个文本文件的话,则 write( ) 需要传递一个字符串作为参数
file_obj.write( ' Hello Hello How are you! ' )
先试着执行:报错,不可读
注意:
使用 open( ) 打开文件时必须要指定打开文件所要做的操作(读、写、追加)
如果不指定操作类型,则默认是读取文件,而读取文件时是不能向文件中写入的
r 表示只读的
w 表示是可写的
修改
with open(file_name , ' w ', encoding= ' utf-8 ') as file_obj:
结果如下:
Hello Hello How are you!
使用 w 来写入文件时,如果文件不存在会创建文件,如果文件存在则会截断文件,截断文件指删除原来文件中的所有内容,比如,先将
with open(file_name , ' w ',
encoding= ' utf-8 ') as file_obj
中的 w 改为 r ,将
file_name ='
demo .txt '
中的 demo 改为 demo3 (不存在的文件)
会报错,文件不存在
而如果换成 w ,文件同样不存在,但是执行没有报错:
***Repl Closed***
同时创建了一个文件
创建完之后,就写进内容:
Hello Hello How are you!
write( ) 可以分多次向文件中写入内容:
file_obj.write( ' aaa ' )
file_obj.write( ' bbb ' )
file_obj.write( ' ccc ' )
aaabbbccc
如果输入
file_obj.write(123)
会报错:只能写入字符串
如果要传递非字符串的值时,需要调用 str 做一个类型转换:
file_obj.write(str(123))
Aaabbbccc123
并且 write( ) 写入不会自动换行,需要加入 \n
file_obj.write( ' aaa\n ' )
file_obj.write( ' bbb\n ' )
file_obj.write( ' ccc\n ' )
file_obj.write(str(123) +' \n' )
write( ) 实际上有返回值,写入完成以后,该方法会返回写入的字符的个数
r = file_obj.write(str(123) +' \n' )
print(r)
结果是 4
再来输入:
r = file_obj.write(str(123) +'123123 \n' ),
结果是 10
输入:
r = file_obj.write('今天天气真不错' ),
结果是 7
如果文件不存在会创建文件,如果文件存在则会向文件中追加内容
将 w 改为 a ,
with open(file_name , ' a ', encoding= ' utf-8 ') as file_obj:
如果文件不存在则新建,存在则报错
r+ 既可读又可写,文件不存在会报错
w+ 在写的基础上增加读的功能
a+ 在追加内容上变成可读的