python入门09读写文件

目录

一、打开文件

二、读文件

 ①、使用 readlines() 方法

②、readline()

③、回到起始点

三、文本文件和二进制文件

 四、写文件

🍖 'w' 表示写模式:

🍗 'a' 表示追加模式:

 🥩使用 print 写文件

 五、在文件中保存内容:pickle

注意


一、打开文件

open() 函数:打开文件并创建文件

在打开文件之前,需要了解要对文件做什么?

  • 查看文件中有什么,而不做任何改变,——打开文件完成操作;
my_file = open('notes.txt', 'r')
  • 创建一个全新的文件或者用某个全新的文件替换现有的文件,——打开文件完成操作;
the_file = open('notes.txt', 'w')
  • 为一个现有文件增加内容,就是要打开文件完成追加操作
ll_file = open('oo.txt', 'a')

二、读文件

my_file = open('notes.txt', 'r')

注意:如果打开一个文件完成读,但是这个文件根本不存在,就会得到一条错误消息。

来提示文件并不存在

 ①、使用 readlines() 方法

readlines():从一个文件读取文件的所有行

my_file = open('notes.txt', 'r')
lines = my_file.readlines()
print(my_file)
print(lines)

②、readline()

 readline() :一次只读取一行

my_file = open('notes.txt', 'r')

first_line = my_file.readline()
print("first_line = ", first_line)
se_line = my_file.readline()
print("se_line = ", se_line)

my_file.close()

③、回到起始点

如果已经使用了readlines所有行,又想查看几次 readline(),要退回到文件的起始位置,否则,输出的是所有行后面的文本——可以使用seek() 方法

my_file = open('notes.txt', 'r')
lines = my_file.readlines()
print(my_file)
print(lines)

my_file.seek(0)

first_line = my_file.readline()
print("first_line = ", first_line)
se_line = my_file.readline()
print("se_line = ", se_line)

my_file.close()

三、文本文件和二进制文件

  • 文本文件:这些文件包含了文本,包括字母、数字、标点符号和一些特殊字 符,如换行符。

  • 二进制文件:这些文件不包含文本,它们可能包含音乐、图片或其他类型的数据。不过由于不包含文本,所以这些文件中也没有行,因为根本不存在换行符。

处理方式:为文件模式增加一个 b 来打开二进制文件

打开一个wav格式音乐
mu_file = open('hit_wall.wav', 'rb')
print(mu_file)
li = mu_file.readlines()
print(li)
mu_file.close()

 四、写文件

写文件分为2种情况:

  •  ——— 这表示开始新文件,或者覆盖现有的文件。
  • 追加 ———这表示增加到现有的文件,保留原来已有的内容。
  • 也可以使用print()写文件

🍖 'w' 表示写模式

  • 如果文件已经存在,文件中的所有内容都会丢失,替换为现在写入的内容;
  • 如果文件不存在,会创建一个同名的新文件,写的所有内容会被放入这个新文件中。
文件已经存在:
w_file = open('qq.txt', 'w')
w_file.write("eat supper\n")
w_file.write('play soccer\n')
w_file.write("go to bed")
w_file.close()

文件不存在:
the_file = open('notes.txt', 'w')
the_file.write("wake up\n")
the_file.close()

🍗 'a' 表示追加模式:

  • 如果文件已经存在,写入的内容,会加到该文件中的末尾;
  • 注意追加的必须是硬盘上某个已经存在的文件名字。
  • 注意:写完文件一定要关闭,因为只有使用 close() 关闭文件,添加的内容才会真正保存到文件中
ll_file = open('oo.txt', 'a')
ll_file.write('\nSend allowed\njjjj')
ll_file.close()

 🥩使用 print 写文件

my_file = open("new_file.txt", 'w')
print('hello,there', file = my_file)
my_file.close()

 

my_file = open("new_file.txt", 'w')
print >> my_file, "Hello there"
my_file.close()

这里的两个 > 符号(有时称为山形符号)告诉 print 要把它的输出发送到一个文件中而不是屏幕上。这称为重定向(redirecting)输出。 

提示: >> 的print输出仅在python2,版本中使用,在python3版本使用会报错!!!!

 在python3需要修改为:

print(<message>, file=<output_stream>) //改为此格式

 

 五、在文件中保存内容:pickle

python 模块——pickle:用来存储列表和对象

写入:

import pickle  #需要添加模块

my_list = ['red', 78, 'hello therer', 81.369e-13]
pickle_file = open('my_pickled_list.pkl','wb')
pickle.dump(my_list, pickle_file)
pickle_file.close()

 注意:此处写入要加 ‘b’ 模式,否则会报错

 还原:

load()函数:会按原来的格式返回数据

pickle_file = open('my_pickled_list.pkl','rb')
recove_list = pickle.load(pickle_file)
print(recove_list)
pickle_file.close()

注意

处理完文件时,一定要关闭文件,倘若另一个程序需要使用这个文件,而程序又还没有将它关闭,那个程序就无法访问这个文件。使用完文件后 就关闭它,这样通常会比较好。

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值