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()

以下是我们的输出内容
python文件操作_第1张图片
文本在代码最后要记得关闭(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

文件基本操作

python文件操作_第2张图片

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 文件是否可写

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

你可能感兴趣的:(python,文本处理,python)