python成长之路9——文件操作open

一. 打开文件

f = open("db","r",encoding="utf8")

  1. r:只读
  2. w:只写,会先清空文件
  3. a:追加
  4. x:如果文件存在,则报错,否则,创建文件并只写
  5. b:上面的参数都可以加“b”,意思是以二进制形式打开文件,读取写入的都是字节,就不需要考虑“encoding”啦
  6. encoding="utf8":告诉python解释器用utf8进行转码,当我们读取字符串时解释器会将字节转换成字符串,当我们写入字符串时解释器会把字符串自动转换成字节,这个过程是python解释器完成的,我们只要确保文件打开时的编码和文件保存时的编码保持一致就行
  7. +:r+,w+,a+,x+都是读写,但是我们一般用r+,因为,w+会先清空文件,a+是追加,x+文件存在会报错
  8. with open("文件名","打开方式",encoding="utf8") as f: 推荐用这种文件打开方式,不用关闭文件而且可以同时打开两个文件,如下:              with open("db","r",encoding="utf8") as f1, open("db2","w",encoding="utf8") as f2

例子:用“b”打开文件

 1 #用b打开文件
 2 with open("db","wb") as f:
 3     temp=bytes("张燕",encoding="utf8")
 4     print(temp)
 5     f.write(temp)
 6 with open("db","rb") as f:
 7     print(f.read())
 8
 9 执行结果:
10 b‘\xe5\xbc\xa0\xe7\x87\x95‘
11 b‘\xe5\xbc\xa0\xe7\x87\x95‘

用b打开文件

二. 操作文件

  1. read(): 无参数,读全部;有参数(n),文件打开加b的话读取n个字节,无b的话读取n个字符
  2. tell():  获取当前指针的位置(字节)
  3. seek():指针跳到指定位置(字节)
  4. write():写数据,文件打开加b的话,写字节;无b的话,写字符
  5. fileno():文件描述符
  6. flush():从内存刷到硬盘
  7. readable():文件可读返回True,否则False
  8. readline():读取一行
  9. truncate():截断文件,会把指针之后的内容全部删除
  10. for line in f:循环文件每一行
  11. f.close():关闭文件

 1 #seek是不受encoding的影响的,seek都是按字节的,如果你有中文,seek(1)会把这个中文劈开
 2 with open("db","r+",encoding="utf8") as f:
 3     f.seek(3)
 4     f.write("flag")
 5
 6 执行前db内容:
 7     ab张燕ijklmnopqrstuvwxyz张杰
 8 执行后db内容:
 9     ab?flag?ijklmnopqrstuvwxyz张杰
10
11 #tell()获取当前指针的位置,和seek一样也是按字节来算的
12 with open("db","r+",encoding="utf8") as f:
13     print(f.read())
14 with open("db","r+",encoding="utf8") as f:
15     print(f.read(2))
16     print(f.tell())
17
18 执行结果:
19 张燕abcdefghijklmnopqrstuvwxyz
20 张燕
21 6

seek和tell

 1 #f.write() 从指针位置开始写,如果指针在文件中间会覆盖对应的字节
 2 # 但是如果一旦开始读文件,不管有没有读到文件尾,python规定都会从文件尾开始写
 3 with open("db","r+",encoding="utf8") as f:
 4     f.seek(2)
 5     f.write("张燕")
 6     f.seek(0)   #主动把指针调到文件开头
 7     data = f.read(12)
 8     print(data)
 9     f.write("张杰")
10     f.seek(0)
11     data = f.read()
12     print(data)
13
14 执行结果:
15 ab张燕ijklmnop
16 ab张燕ijklmnopqrstuvwxyz张杰

write

 1 #f.truncate()
 2 #截断文件,会把指针之后的内容全部删除
 3 with open("db","r+",encoding="utf8") as f:
 4     print(f.read())
 5     f.seek(3)
 6     f.truncate()
 7     f.seek(0)
 8     print(f.read())
 9
10 执行结果:
11 1234567890
12 123

truncate

时间: 2024-07-31 14:29:25

python成长之路9——文件操作open的相关文章

Python学习之路4 - 文件操作&编码转换

文件操作 文件操作大概分三步: 把文件打开. 操作文件. 把文件关上. 打开文件 打开文件用open()函数,打开成功后返回一个资源,具体语法如下. open(要打开的文件,打开方式,打开文件的格式,默认为utf-8) #例如 f = open('passengers.txt','r',encoding='utf-8') 上例用open以只读的模式打开文件,因为该文本是utf-8编码的,所以第三个参数是utf-8 w 模式是写入,是创建一个新文件的写,所以如果已经有了该文件就会被覆盖掉,注意安全

Python学习之路:文件操作

文件基本操作: 打开.读取.追加.关闭 #data = open("yesterday",encoding="utf-8").read() #打开并读取文件 f=open("yesterday",'r',encoding="utf-8") #文件句柄 data = f.read() print(data) f=open("yesterday2",'w',encoding="utf-8")

Python学习之路:文件操作之增删改查

f = open("yesterday","r",encoding="utf-8") #print(f.read()) #for i in range(5): # print(f.readline()) #打印前5行 #low loop ''' for index,line in enumerate(f.readline()): if index == 9: print('---------我是分割线---------') continue pr

python成长之路第三篇(4)_作用域,递归,模块,内置模块(os,ConfigParser,hashlib),with文件操作

打个广告欢迎加入linux,python资源分享群群号:478616847 目录: 1.作用域 2.递归 3.模块介绍 4.内置模块-OS 5.内置模块-ConfigParser 6.内置模块-hashlib 7.with文件操作 代码执行环境默认为3.5.1 一.作用域 (1)什么是作用域,官方来说作用域就是就是有不同的命名空间,就像下面的代码一样,a=1它的作用域是全局的,也在全局的命名空间当中,当函数 action中的a=2它就在局部的作用域中,也在局部的命名空间当中. a = 1def

python成长之路第一篇(5)文件的基本操作

一.三元运算 我们在上章学习的if,,else,,有一种简便的方法 他的表达式是这样的:变量 = 值1 if 条件 else 值2 解释过来就是如果aaa等于sss则输出值1否则输出值2 二.类的概念 类是面向对象编程的核心, 它扮演相关数据及逻辑的容器角色.它们提供了创建"真实"        对象(也就是实例)的蓝图.对于Python,一切事物都是对象,对象基于类创建. 如何查询对象的类呢? 为啥分为有下划线和没下划线的呢,这些又是什么呢?本例中以查看的是列表的类,那么这个类下面就

Python不归路_文件操作(一)

Python文件操作 Python文件操作的语法是: open(file,mode,buffering,encoding,erros,newline,closefd) 我们先来看下各个参数, file:很明显,输入文件的路径. mode:mode参数有很多  r 以只读方式打开文件,默认参数  r+ 以读写方式打开文件   w 以写入方式打开文件,如果文件存在,先删除原文件,再创建文件:如果文件不存在直接创建  w+ 以读写方式打开文件,如果文件存在,先删除原文件,再创建文件:如果文件不存在直接

Python成长之路【第五篇】:Python基础之文件处理

一.文件操作 1.介绍 计算机系统分为:计算机硬件,操作系统,应用程序三部分. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序是无法直接操作硬件的,这就用到了操作系统.操作系统把复杂的硬件操作封装成简单的接口给用户/应用程序使用,其中文件就是操作系统提供给应用程序来操作硬盘虚拟概念,用户或应用程序通过操作文件,可以将自己的数据永久保存下来. 有了文件的概念,我们无需再去考虑操作硬盘的细节,只需要关注操作文件

python之路---08 文件操作

二十六.   文件 f = open(文件路径,mode = '模式',encoding = '编码格式') 1.基础 ① 读写时,主要看光标的位置 ②操作完成要写    f.close( ) f.flush( ) ③f  文件句柄是一个可迭代对象  可用for 循环 ④要用  \n  进行增减空白 2.文件路径 ① 相对路径:.相对于当前程序所在的文件夹,如果在文件夹内,直接写名字 不在时,需要出文件或进文件 文件名 /        进文件 ../            出文件 ②绝对路径:

python成长之路第三篇(1)_初识函数

目录: 函数 1.为什么要使用函数 2.什么是函数 3.函数的返回值 4.文档化函数 5.函数传参数 文件操作(二) 1.文件操作的步骤 2.文件的内置方法 函数: 一.为什么要使用函数 在日常写代码中,我们会发现有很多代码是重复利用的,这样会使我们的代码变得异常臃肿,比如说: 我们要写一个验证码的功能 例子: 比如说我们要进行一些操作,而这些操作需要填写验证码 验证码代码:  1 import random   2 number_check = ''   3 for i in range(0,