python的open函数常见用法

目录
  • 1.open()
    • 1.1 参数1
    • 1.2 参数2
    • 1.3 参数3
  • 2.with open() as
  • 3.open函数常用的方法
    • 3.1 读
    • 3.2 写
    • 3.3 获取文件读写类型
    • 3.4 指针移动
    • 3.5 当前指针位置
    • 3.6 truncate

在python中使用open函数对文件进行处理。

1.open()

python打开文件使用open()函数,返回一个指向文件的指针。该函数常用以下三个参数。

1.1 参数1

目标文件的路径+名字。最好使用r"路径"这种原始字符串写法,防止有转义字符影响实际路径。

1.2 参数2

操作文件的方式mode=‘方式’。mode=可以省略。下面对操作文件的方式进行详细说明:

(1)r

以只读方式打开文件。文件的指针将会放在文件的开头。这是open默认模式。如果文件不存在,会报错。

(2)rb

以二进制只读方式打开一个文件。文件指针将会放在文件的开头。注意这种方式不能使用encoding,不然会报错。

同样的内容使用一般方式和二进制的方式打开。

fp = open(r"E:\test.txt",'r',encoding='utf-8')
content = fp.readline()
print(content)

输出:加油,好好干!

fp = open(r"E:\test.txt",'rb')
content = fp.readline()
print(content)

输出:b’\xe5\x8a\xa0\xe6\xb2\xb9\xef\xbc\x8c\xe5\xa5\xbd\xe5\xa5\xbd\xe5\xb9\xb2\xef\xbc\x81’

(3)r+

以读写方式打开一个文件。文件指针将会放在文件的开头。直接写入会覆盖文件开头的内容。

原始内容:

加油,好好干!别放弃

fp = open(r"E:\test.txt",'r+',encoding='utf-8')
fp.write("开心吧")
fp.close()
fp = open(r"E:\test.txt", 'r', encoding='utf-8')
content = fp.readline()
print(content)
fp.close()

执行后:

开心吧好好干!别放弃

(4)rb+

以二进制读写方式打开一个文件。文件指针将会放在文件的开头。

(5)w

以写入打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。

(6)wb

以二进制写入方式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。
(7)w+

以读写方式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。

原始内容:

开心吧好好干!别放弃

fp = open(r"E:\test.txt",'w+',encoding='utf-8')
fp.write("认真一点")
fp.close()
fp = open(r"E:\test.txt", 'r', encoding='utf-8')
content = fp.readline()
print(content)
fp.close()

执行后直接覆盖所有原始内容:

认真一点

(8)wb+

以二进制读写格式打开一个文件。如果该文件已存在,则将其覆盖。如果该文件不存在,则创建新文件。

(9)a

以追加方式打开一个文件。如果文件已存在,文件指针将会放在文件结尾。即:新的内容将会被追加到已有的内容之后。如果该文件不存在,则创建新文件可用于写入。注意,不能读,读会出错。

(10)a+

以读写方式打开一个文件。如果文件已存在,文件指针将会放在文件结尾。即:新的内容将会被追加到已有的内容之后。如果该文件不存在,则创建新文件可用于读写。

原始内容:

认真一点

fp = open(r"E:\test.txt",'a+',encoding='utf-8')
fp.write("你就离成功近一点")
fp.close()
fp = open(r"E:\test.txt", 'r', encoding='utf-8')
content = fp.readline()
print(content)
fp.close()

执行后追加:

认真一点你就离成功近一点

这时候,指针放在文件尾部,直接读取会没有内容,需要将指针移动(seek)到文件的头部:

with open(r"E:\test.txt",'a+',encoding='utf-8') as fp:
    fp.seek(0,0)
    content = fp.readline()
    print(content)

(11)ab+

以二进制读写方式打开一个文件。如果文件已存在,文件指针将会放在文件结尾。即:新的内容将会被追加到已有的内容之后。如果该文件不存在,则创建新文件可用于读写。

1.3 参数3

编码的方式,常用utf-8,gbk等。如:encoding=‘utf-8’

如果是二进制的方式,这个参数不需要填,填了还会报错。

2.with open() as

这是open()的一种升级用法,控制块结束的时候文件会自动关闭,不需要显示地调用close()关闭文件。这种方法更方便使用,所以推荐大家使用这种方法。

with open(r"E:\test.txt",'r',encoding='utf-8') as fp:
    content = fp.readlines()

3.open函数常用的方法

3.1 读

文件内容:

认真一点你就离成功近一点
啊啊啊啊啊啊啊啊啊啊啊
fffffffffff

(1)read()

一次性读取整个文件内容,将整个文件放到一个字符串中。使用read(size)方法,返回文件中的前size个字符:

content = fp.read()

输出:

认真一点你就离成功近一点
啊啊啊啊啊啊啊啊啊啊啊
fffffffffff

(2)readline()

每次读取一行内容。

content = fp.readline()

输出:

认真一点你就离成功近一点

(3)readlines()

一次性读取整个文件内容到一个迭代器以供我们遍历(读取到一个list中,以供使用,比较方便)

content = fp.readlines()

输出;

[‘认真一点你就离成功近一点\n’, ‘啊啊啊啊啊啊啊啊啊啊啊\n’, ‘fffffffffff’]

3.2 写

(1)write()

fp.write()的参数必须是一个字符串,就是你要写入文件的内容.

(2)writelines()

fp.writelines()的参数可以是列表,也可以是字符串。

3.3 获取文件读写类型

如果文件可写,则 fp.writable() 方法返回 True,否则返回 False。

如果文件是可读的,则 fp.readable() 方法返回 True,否则返回 False。

比如:以w方式打开的文件,fp.readable()返回False,fp.writable()返回True。

3.4 指针移动

seek

f.seek(偏移量,[起始位置])

起始位置的三种取值:0文件开头,1当前位置,2文件末尾

例子见1.3中(10)a+

3.5 当前指针位置

tell()返回一个整数,表示当前文件指针的位置(就是到文件头的字节数).

如果是utf-8编码,那么一个中文字符占用三个字节,一个英文字符占用一个字节。如果是gbk编码,那么一个中文字符占用两个字节,一个英文字符占用一个字节。

with open(r"E:\test.txt",'a+',encoding='utf-8') as fp:
    content = fp.tell()
    print(content)

打印:30

3.6 truncate

truncate(size) 方法用于截断文件,如果指定了可选参数 size,则表示截断文件为 size 个字符。 如果没有指定 size,则从当前位置起截断;截断之后 size 后面的所有字符被删除。

到此这篇关于python的open函数使用的文章就介绍到这了,更多相关python open函数使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python-opencv中的cv2.inRange函数用法说明

    本次目标是将一副图像从rgb颜色空间转换到hsv颜色空间,颜色去除白色背景部分 具体就调用了cv2的两个函数,一个是rgb转hsv的函数 具体用法 hsv = cv2.cvtColor(rgb_image, cv2.COLOR_BGR2HSV) 然后利用cv2.inRange函数设阈值,去除背景部分 mask = cv2.inRange(hsv, lower_red, upper_red) #lower20===>0,upper200==>0, 函数很简单,参数有三个 第一个参数:hsv指的是

  • Python-OpenCV中的cv2.inpaint()函数的使用

    目录 概念 库函数 实现 代码 概念 修复是图像插值.数字修复算法在图像插值,照片恢复,缩放和超分辨率等方面具有广泛的应用. 大多数人会在家里放一些旧的退化照片,上面有一些黑点,一些笔画等.你有没有想过恢复它?我们不能简单地在绘画工具中擦除它们,因为它将简单地用白色结构替换黑色结构,这是没有用的.在这些情况下,使用称为图像修复的技术.基本思路很简单:用邻近的像素替换那些坏标记,使其看起来像是邻居(取自维基百科),考虑下面显示的图像: 库函数 dst = cv2.inpaint(src,mask,

  • python opencv鼠标画矩形框之cv2.rectangle()函数

    目录 cv2.rectangle()函数说明 参数说明 利用鼠标回调函数交互式画矩形框 总结 关于鼠标回调函数的说明可以参考:opencv-python的鼠标交互操作 cv2.rectangle()函数说明 参数说明 导入cv2后,通过help(cv2.rectangle)可以看到函数的帮助文档如下: rectangle(...) rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) -> img . @brief D

  • Python OpenCV 基于图像边缘提取的轮廓发现函数

    基础知识铺垫 在图像中,轮廓可以简单的理解为连接具有相同颜色的所有连续点(边界)的曲线,轮廓可用于形状分析和对象检测.识别等领域. 轮廓发现的原理:先通过阈值分割提取目标物体,再通过边缘检测提取目标物体轮廓. 一个轮廓就是一系列的点(像素),这些点构成了一个有序的点集合. 使用 cv2.findContours 函数可以用来检测图像的边缘. 函数原型说明 contours, hierarchy = cv2.findContours(image, mode, method[, contours[,

  • python的open函数常见用法

    目录 1.open() 1.1 参数1 1.2 参数2 1.3 参数3 2.with open() as 3.open函数常用的方法 3.1 读 3.2 写 3.3 获取文件读写类型 3.4 指针移动 3.5 当前指针位置 3.6 truncate 在python中使用open函数对文件进行处理. 1.open() python打开文件使用open()函数,返回一个指向文件的指针.该函数常用以下三个参数. 1.1 参数1 目标文件的路径+名字.最好使用r"路径"这种原始字符串写法,防止

  • Python内置函数reversed()用法分析

    本文实例讲述了Python内置函数reversed()用法.分享给大家供大家参考,具体如下: reversed()函数是返回序列seq的反向访问的迭代器.参数可以是列表,元组,字符串,不改变原对象. 1>参数是列表 >>> l=[1,2,3,4,5] >>> ll=reversed(l) >>> l [1, 2, 3, 4, 5] >>> ll <listreverseiterator object at 0x06A9E9

  • Python中numpy模块常见用法demo实例小结

    本文实例总结了Python中numpy模块常见用法.分享给大家供大家参考,具体如下: import numpy as np arr = np.array([[1,2,3], [2,3,4]]) print(arr) print(type(arr)) print('number of dim:', arr.ndim) print('shape:', arr.shape) print('size:', arr.size) [[1 2 3]  [2 3 4]] number of dim: 2 sha

  • Python基础之函数基本用法与进阶详解

    本文实例讲述了Python基础之函数基本用法与进阶.分享给大家供大家参考,具体如下: 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形式 无参数,无返回值 无参数,有返回值 有参数,无返回值 有参数,有返回值 定义函数时,是否接收参数,或者是否返回结果,是根据 实际的功能需求 来决定的! 如果函数 内部处理的数据不确定,就可以将外界的数据以参数传递到函数内

  • Python中int()函数的用法浅析

    int()是Python的一个内部函数 Python系统帮助里面是这么说的 >>> help(int) Help on class int in module __builtin__: class int(object) | int(x[, base]) -> integer | | Convert a string or number to an integer, if possible. A floating point | argument will be truncated

  • Python中 map()函数的用法详解

    map( )函数在算法题目里面经常出现,map( )会根据提供的函数对指定序列做映射,在写返回值等需要转换的时候比较常用. 关于映射map,可以把[ ]转成字符串的话,就不需要用循环打印字符串输出结果这种比较旧的方式. 在Python 3中的例子如下: 也可以用匿名函数来计算幂计算: map(lambda x:x**2,[1,2,3,4,5]) 也可以用来规范输出: name_list={'tony','cHarLIE','rachAEl'} def format_name(s): ss=s[0

  • python字符串查找函数的用法详解

    python字符串查找函数的使用 打开Python开发工具IDLE,新建'findstr.py'文件,并写代码如下: s ='/ab/bx,.s' print (s.find('/x')) 注意find是匹配子字符串,而不是匹配第一个字符 F5运行程序,打印出-1,代表没有找到'/x'子字符串 修改代码如下,查找'/b'子字符串 s ='/ab/bx,.s' print (s.find('/b')) F5运行程序,打印出3,代表'/b'子字符串起始索引是3 find是从左到右查找,默认从起始位置

  • python内置函数sorted()用法深入分析

    本文实例讲述了python内置函数sorted()用法.分享给大家供大家参考,具体如下: 列表对象提供了sort()方法支持原地排序,而内置函数sorted()不支持原地操作只是返回新的列表,并不对原列表进行任何修改.sorted()方法可以对列表.元组.字典.range对象等进行排序.列表的sort()方法和内置函数sorted()都支持key参数实现复杂排序要求. #使用key来指定排序依据,先按姓名升序排序,姓名相同的按年龄降序排序 >>> persons = [{'name':'

  • 基于python中__add__函数的用法

    运算符重载 _add ##定义:让自定义的类生成的对象(实例)能够使用运算符进行操作 class Vector01: '''定义一个一维向量''' def init(self,x): self.x = x def str(self): '''定义新生成的返回值是什么,如果没有这个之间返回的是类的特点''' return ('一维向量的分量是:%d' % (self.x)) def add(self, other): #表示print内的+ # print('参数是:',other) return

  • MySQL流程函数常见用法实例分析

    本文实例讲述了MySQL流程函数常见用法.分享给大家供大家参考,具体如下: 流程函数是MySQL相对常用的一类函数, 用户可以使用这类函数在一个SQL语句中实现条件选择, 这样能够提高效率. 下面列出了MySQL跟条件有关的流程函数 函数 功能 IF(expr1,expr2,expr3) 如果expr1是真, 返回expr2, 否则返回expr3 IFNULL(expr1,expr2) 如果expr1不是NULL,返回expr1,否则返回expr2 CASE WHEN [value1] THEN

随机推荐