python读写文件常见操作方式

                                                python读写文件

1  文件读取全文本操作

在一定场景下我们需要把文本全部内容读取出来,进行处理。python提供三种函数读取文件,分别是read readline readlines

read():读取文件的全部内容,加上参数可以指定读取的字符。

readline():读取文件的一行。

readlines():读取文件的所有行到内存中。

不同场景下我们可以选择不同函数对文件进行读取。

1.1  方法一

file_name = input("请输入你要打开的文件的完整路径及名称")
file = open(file_name, "r")
txt = file.read()
# 全文本的处理
file.close()

使用read函数将文件中的内容全部读取,放在字符串变量txt中。这样操作适合于文本较小,处理简单的情况,当文件较大时,这种方式处理时不合适的。一次性读取较大的文件到内存中,会耗费较多的时间和资源。这时候分批处理效果更好。

1.2  方法二

file_name = input("请输入你要打开的文件的完整路径及名称")
file = open(file_name, "r")
txt = file.read(4)
# 文本的处理
while txt != ""
    txt = file.read(4)
    # 批量文本处理
file.close()

这种方法适合于分批处理文本信息,每次批量读入,批量处理,不会对内存造成较大的压力。

1.3  方法三

file_name = input("请输入你要打开的文件的完整路径及名称")
file = open(file_name, "r")
for line in file.readlines():
    # 处理每一行数据
file.close()

这种处理方式适合处理以行为分割特点的文本,并且文本较小,因为这种处理方式需要一次性把文件所有内容读取到内存中。

1.4  方法四

file_name = input("请输入你要打开的文件的完整路径及名称")
file = open(file_name, "r")  # 这里的file时文件句柄
for line in file:
    # 处理每一行数据
file.close()

这种方式和方法三中的区别是分行读入,逐行处理,不会一次性把文件所有内容都读入到内存中,对一些大文件的处理是很有效的。

2  文件写入文本操作

文件写入有两种写入函数和一种辅助支持。

write():向文件中写入一个字符或者字节流 

writelines():将一个元素全为字符串的列表写入到文件中 需要注意的是,writelines写入列表元素的时候会把列表元素的内容拼接到一起写入,不会有换行和空格 。

seek(): 辅助写入函数offset偏移量参数代表含义如下

0 - 文件开头

1 - 当前位置

2 - 文件结尾

2.1  方法一

file_name = input("output.txt", "w+")
text = "hello world!"
file_name.write(text)
file.close()

2.2  方法二

file_name = input("output.txt", "w+")
list = ["中午","早上","晚上"]
file_name.writelines(list)
for line in file:
    # 读取写入的数据,这时候发现是没有任何内容的
file.close()

我们增加一行代码就可以读取到写入的文件内容,利用seek()函数调整写操作指针的位置,可以实现写操作之后的正常读取。

file_name = input("output.txt", "w+")
list = ["中午","早上","晚上"]
file_name.readlines(list)
file_name.seek(0) # 调整写的指针到文件的开始位置
for line in file:
    # 读取写入的数据,这时候会读出一行写入的数据。
file.close()

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值