1.读取整个文件:
创建一个文件:
pi_digits.txt:
3.1415926535
8979323846
2643383279
with open('pi_digits.txt') as file_object:#open()返回一个表示文件pi_digits.txt的对象,Python将这个对象存储在后面使用的变量中
contents = file_object.read()#使用read()函数读取整个文件,并将其作为一个长字符串存储在变量中
print(contents)
输出:
3.1415926535
88283648232
34237847285
2.逐行读取
filename='pi_digits.txt'
with open(filename)as file_object:
for line in file_object:
print(line)
#print(line.rsplit())#去除输出中间多余的行
输出:
3.1415926535
88283648232
34237847285
#['3.1415926535']
['88283648232']
['34237847285']
3.创建一个包含文件各行内容的列表
filename ='pi_digits.txt'
with open(filename)as file_object:
lines=file_object.readlines()#从文件中读取每一行,并且将其存储在一个列表中;该列表被存储到变量lines中
for line in lines:
print(line.rsplit())#简单的for 循环来打印lines 中的各行。由于列表lines 的每个元素都对应于文件中的一行,因此输出与文件内容完全一致。
输出:
['3.1415926535']
['88283648232']
['34237847285']
4.使用文件中的内容,将文件中的数据存储成圆周率。
filename ='pi_digits.txt'
with open(filename)as file_object:
lines=file_object.readlines()
pi_string=''#创建一个变量-用来存储圆周率
for line in lines:
pi_string += line.rstrip()#使用循环将各行都加入该变量中并删除每行末尾的换行符
print(pi_string)#打印该字符串
print(len(pi_string))#打印该字符串长度
输出:
3.14159265358828364823234237847285
34
5.写入空文件
filename='programing.txt'
with open(filename,'w')as file_object:#'w'表示写入模式
file_object.write("I love you.\n")
file_object.write("I love creating new games.\n")
输出:programing.txt
I love you.
I love creating new games.
6.附加到文件
filename = 'programing.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")
输出:
I love you.
I love creating new games.
I also love finding meaning in large datasets.
I love creating apps that can run in a browser.
实例1.编写一个程序,提示用户输入其名字;用户作出响应后,将其名字写入到文件guest.txt中。
filename='guest.txt'
with open(filename,'w')as file_object:
print("请输入你的名字:")
file_object.write(input())
输出:
请输入你的名字:
w
实例2.编写一个while 循环,提示用户输入其名字。用户输入其名字后,在屏幕上打印一句问候语,并将一条访问记录添加到文件guest_book.txt中。确保这个文件中的每条记录都独占一行。
filename = 'guess_book.txt'
with open(filename,'a') as file_object:
while True:
name = input("Please enter your name:")
file_object.write(name + "! Welcome come to Beijing\n")
if name == 'haha':
break
输出:
Please enter your name:wwww
Please enter your name:eee
Please enter your name:haha
实例3::编写一个while 循环,询问用户为何喜欢编程。每当用户输入一个原因后,都将其添加到一个存储所有原因的文件中。
print("如果你想退出请输入q.")
filename='reason.txt'
while True:
reason=input("请输入你喜欢编程的原因:")
if reason =='q':
break
else:
with open(filename,'a')as file_object:
file_object.write(reason + '\n')
输出:
如果你想退出请输入q.
请输入你喜欢编程的原因:纯喜欢
请输入你喜欢编程的原因:不知道
请输入你喜欢编程的原因:q
实例4:为了把把接受调查的人的名字和他喜欢编程的原因关联起来,我们把代码改一下:
print("如果你想退出请输入q.")
print("如果你想换别人回答问题请输入ot。")
filename='reason.txt'
name=input("请输入你的名字:")
while True:
if name=="q":
break
elif name=="ot":
name=input("请输入你的名字:")
else:
reason=input("请输入你喜欢编程的原因:")
if reason =='q':
break
elif reason=='ot':
name=input("请输入你的名字:")
else:
with open(filename,'a')as file_object:
file_object.write("name"+name.title()+" reason:"+reason + '\n')
输出:
如果你想退出请输入q.
如果你想换别人回答问题请输入ot。
请输入你的名字:hh
请输入你喜欢编程的原因:jj
请输入你喜欢编程的原因:kk
请输入你喜欢编程的原因:ot
请输入你的名字:shd
请输入你喜欢编程的原因:fg
请输入你喜欢编程的原因:ot
请输入你的名字:jsfjag
请输入你喜欢编程的原因:sfuag
请输入你喜欢编程的原因:ot
请输入你的名字:q
reason.txt:
'r'读取文件模式
‘w’写入模式
‘a’附加模式