在python中,使用open函数,打开一个已经存在的文件,或者新建一个新文件。
函数语法 open(name[, mode[, buffering[,encoding]]])
name : 一个包含了你要访问的文件名称的字符串值(区分绝对路径和相对路径)。
mode : mode
决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。
buffering : 如果 buffering 的值被设为 0,就不会有寄存。如果
buffering 的值取 1,访问文件时会寄存行。如果将 buffering 的值设为大于 1
的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。
2 关闭文件
对于文件的操作结束之后,使用close()来关闭文件
文件对象.close()
3 文件读
read(num):可以读取文件里面的内容。num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据
readlines:可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素
4 文件写
write():把str写到文件中,write()并不会在str后加上一个换行符
writelines(seq):把seq的内容全部写到文件中(多行一次性写入)。这个函数也只是忠实地写入,不会在每行后面加上任何东西。
5 with的使用
上下文管理器:打开文件之后,不用使用close()关闭文件
with open("guest_book.txt",'a+',encoding='utf-8') as f:
f.writelines(cause+'\n')
6 访问模式与常用的函数
7例题说明
1 在文本编辑器中新建一个文件,写几句话来总结一下你至此学到的Python 知识,其中每一行都以“In Python you can”打头。将这个文件命名为learning_python.txt,并将其存储到为完成本章练习而编写的程序所在的目录中。编写一个程序,它读取这个文件,并将你所写的内容打印三次:第一次打印时读取整个文件;第二次打印时遍历文件对象;第三次打印时将各行存储在一个列表中。
2.下面是一个简单的示例,演示了如何将句子中的'dog'替换为'cat':
>>> message = "I really like dogs."
>>> message.replace('dog', 'cat')
'I really like cats.'
读取你刚创建的文件learning_python.txt 中的每一行,将其中的Python 都替换为另
一门语言的名称,如C。将修改后的各行都打印到屏幕上。块外打印它们。
3.访客:编写一个程序,提示用户输入其名字;用户作出响应后,将其名字写
入到文件guest.txt 中。
4.访客名单:编写一个while 循环,提示用户输入其名字。用户输入其名字后,
在屏幕上打印一句问候语,并将一条访问记录添加到文件guest_book.txt 中。确保这个
文件中的每条记录都独占一行。
5.关于编程的调查:编写一个while 循环,询问用户为何喜欢编程。每当用户输
入一个原因后,都将其添加到一个存储所有原因的文件中。
with open("learning_python.txt",'r',encoding="utf-8")as f1:
con=f1.read()
print(con)
f1.seek(0,0)
# 只读取一行
con1=f1.readline()
print(con1)
f1.seek(0,0)
# 读取所有的行并将其保存在列表中
con2=f1.readlines()
print(con2)
for iin con2:
print(i)
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #with
with open('learning_python.txt','r+',encoding='utf-8')as f2:
contents=f2.read()
con=contents.replace("Python","C")
print(con)
f2.seek(0,0)
f2.writelines(con)
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #wit
name=input("请输入您的名字")
with open("guest.txt","+",encoding="utf-8")as f1:
f1.writelines(name)
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #wit
while 1:
name=input("请输入您的名字")
print("hello"+name)
with open("guest_book.txt ",'a+',encoding='utf8')as f:
# 换行
f.writelines(name+'\n')
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #wit
while 1:
cause=input("为何喜欢编程:")
with open("guest_book.txt",'a+',encoding='utf-8')as f:
f.writelines(cause+'\n')