python文件操作

文件的基本操作过程

  • 访问文件操作过程

     1 打开文件
     2 读取文件
     3 将信息储存到内存
     4 写入文件
     5 关闭文件
     6 保存文件并释放内存空间
    

python中如何实现对文件的操作

  • 打开文件 — open
help(open)
# 查看open的帮助文档

在这里插入图片描述
open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

我们可以看到帮助文档最上面这一部分,open有以下参数:

参数名需要填入的内容
file要打开的文件名(str)
mode打开文件的方式,有text和bytes两种
buffering缓存方式
encoding文件的编码方式
errors当编码发生错误的时候的处理方式
newline设置后禁用通用换行符

来尝试使用 open 打开文档:

# 在当前文件创建一个txt文本,并打开它
fp = open('像我这样的人.txt', encoding='utf-8')
# 这里因为打开的时候说编码有问题 于是我设置了编码的格式 - utf-8
print(fp.readlines())
print(fp)
fp.close()

以下是我们的输出内容
Alt
文本在代码最后要记得关闭(close()),文件打开后保存在电脑的内存中,如果程序异常退出,会造成系统资源浪费。

  1. 打开文件-文件编码

    • encoding: 文件的编码方式( str ) 
    • encoding的默认值:None, 不同的平台打开的方式不一样
    
  2. 为什么需要编码

    对于计算机来说,所有信息都是由0和1组成的二进制。 
    人类无法	仅用二进制就来完成计算机的各种操作 字符编码解决人与计算机之间的沟通问题。
    

常见的编码类型

编码格式特点
ASCII除去最高位,用7位表示
扩展ASCII用8位表示
GB2312表示中文汉字
GBK扩展表示更多的中文字符
UTF-8可变长的方式,节省磁盘空间

我们要如何才能判断文件的编码格式呢?
—— 使用模块:charde

pip install charde

pip失败解决方案
charde 判断编码格式的使用:

import chardet

fp = open('像我这样的人.txt', 'rb')
print(chardet.detect(fp.read()))
# 输出结果:{'encoding': 'utf-8', 'confidence': 0.99, 'language': ''}
fp.close()
 - 可以看到编码格式(encoding)是utf-8

文件基本操作

在这里插入图片描述

with 语句打开文件

file1 = 'utf8.txt'
file2 = 'gpk.txt'

with open(file1, "r", encoding = 'utf-8') as fp1 ,\
		open(file2, "r", encoding = 'gpk') as fp2:
	for line in f1:
		print(line)
	for line in f2:
		print(line)

# 输出文件里面的内容

这里使用 with 语句对文本文件进行操作的时候,结尾的时候不必使用fp.close(),因为 with 语句是 python 中的上下文管理器,在 with 语段结束后自带关闭文件的操作。

文件的基本操作

方式说明
f.tell()文件光标
f.seek(cookie,whence=0)移动光标位置,cookie =>偏移量,whence=>(0 => 开始,1=>当前,2=>末尾)
f.readlines()以行方式读取文件当前到末尾,返回一个列表,列表中一个元素对应文件中的一行内容
f.read()返回当前到末尾(字符串)可指定字符数
f.readline()返回当前位置到当前所处行的行末
f.write(‘something’)将内容写入文件

文件对象的其他方法

方式说明
f.readable()文件是否可读
f.fileno()返回文件描述符
f.seekable()指针是否可移动
f.truncate(n)从文件头开始截取指定的参数n个字节,其他的全部删除
f.writable文件是否可写

至于上面的方式就不一 一展示了,在需要的时候找到对应的文件操作方法进行使用就行。
如果想学习更多,欢迎到访 三创.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wx-zhou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值