-- coding:utf-8 --
#li hongliang 2020年08月12日
#10.2 写入文件
#保存数据的最简单的方式之一是将其写入到文件中。通过将输出写入文件,即便关闭包含程序输出的终端窗口,这些输出也依然存在:你可以在程序结束运行后查看这些输出,可与别人分享输出文件,还可编写程序来将这些输出读取到内存中并进行处理。
#10.2.1 写入空文件
#要将文本写入文件,你在调用open()时需要提供另一个实参,告诉Python你要写入打开的文件。
#打开文件时,可指定读取模式(‘r’)、写入模式(‘w’)、附加模式(‘a’)或让你能够读取和写入文件的模式(‘r+’)。如果你省略了模式实参,Python将以默认的只读模式打开文件。
#如果你要写入的文件不存在,函数open()将自动创建它。然而,以写入(‘w’)模式打开文件时千万要小心,因为如果指定的文件已经存在,Python将在返回文件对象前清空该文件。
#注意 Python只能将字符串写入文本文件。要将数值数据存储到文本文件中,必须先使用函数str()将其转换为字符串格式。
filename = ‘programming.txt’
with open(filename, ‘w’) as file_object:
file_object.write(“I love programming.\n”)
file_object.write(str(80000000000)+"\n")
file_object.write(“I also love finding meaning in large datasets.\n”)
file_object.write(“I love creating apps that can run in a browser.\n”)
#要让每个字符串都单独占一行,需要在write()语句中包含换行符:像显示到终端的输出一样,还可以使用空格、制表符和空行来设置这些输出的格式。
#10.2.3 附加到文件
#如果你要给文件添加内容,而不是覆盖原有的内容,可以附加模式打开文件。你以附加模式打开文件时,Python不会在返回文件对象前清空文件,而你写入到文件的行都将添加到文件末尾。如果指定的文件不存在,Python将为你创建一个空文件。
filename = ‘programming.txt’
with open(filename, ‘a’) as file_object:
file_object.write(“I also love finding meaning in large datasets.\n”)
file_object.write(“I love creating apps that can run in a browser.\n”)
#动手试一试
#10-3 访客:编写一个程序,提示用户输入其名字;用户作出响应后,将其名字写
#入到文件 guest.txt 中。
filename = ‘guest.txt’
name = input("Enter your name: ")
with open(filename,‘a’) as file_object:
file_object.write(name + “\n”)
#10-4 访客名单:编写一个 while 循环,提示用户输入其名字。用户输入其名字后,
#在屏幕上打印一句问候语,并将一条访问记录添加到文件 guest_book.txt 中。确保这个
#文件中的每条记录都独占一行。
‘’‘prompt = “\nPlease enter your name:”
prompt += "\n(Enter ‘quit’ when you are finished.) "
greetings = ‘Welcome to here’
filename = ‘guest_book.txt’
while True:
name = input(prompt)
if name == ‘quit’:
break
else:
print(greetings)
with open(filename,‘a’) as file_object:
file_object.write(name +’,’+ greetings+"\n")’’’
#10-5 关于编程的调查:编写一个 while 循环,询问用户为何喜欢编程。每当用户输
#入一个原因后,都将其添加到一个存储所有原因的文件中。
prompt = “\n Why do you like programming:”
prompt += “\n(Enter ‘quit’ when you are finished.) "
greetings = ‘Thank you for your reply’
filename = ‘Programming_survey.txt’
while True:
reason = input(prompt)
if reason == ‘quit’:
break
else:
print(greetings)
with open(filename,‘a’) as file_object:
file_object.write(reason +’,’+ greetings+”\n")