六,文件操作(编码,读写文件,with方法)
目录
编码
with方法
文件函数
文件操作
内置方法seek,tell
编码
ascll码表,gbk编码,unicode编码,utf-8编码,
文件操作模式
模式 | 意义 | 注意事项 |
---|---|---|
r | 只读模式打开文件,读文件内容的指针会放在文件的开头。 | 操作的文件必须存在。 |
rb
|
以二进制格式、采用只读模式打开文件,读文件内容的指针位于文件的开头,一般用于非文本文件,如图片文件、音频文件等。 | |
r+ | 打开文件后,既可以从头读取文件内容,也可以从开头向文件中写入新的内容,写入的新内容会覆盖文件中等长度的原有内容。 | |
rb+
|
以二进制格式、采用读写模式打开文件,读写文件的指针会放在文件的开头,通常针对非文本文件(如音频文件)。 | |
w | 以只写模式打开文件,若该文件存在,打开时会清空文件中原有的内容。 | 若文件存在,会清空其原有内容(覆盖文件);反之,则创建新文件。 |
wb
|
以二进制格式、只写模式打开文件,一般用于非文本文件(如音频文件) | |
w+ | 打开文件后,会对原有内容进行清空,并对该文件有读写权限。 | |
wb+
|
以二进制格式、读写模式打开文件,一般用于非文本文件 | |
a | 以追加模式打开一个文件,对文件只有写入权限,如果文件已经存在,文件指针将放在文件的末尾(即新写入内容会位于已有内容之后);反之,则会创建新文件。 | |
ab | 以二进制格式打开文件,并采用追加模式,对文件只有写权限。如果该文件已存在,文件指针位于文件末尾(新写入文件会位于已有内容之后);反之,则创建新文件。 | |
a+ | 以读写模式打开文件;如果文件存在,文件指针放在文件的末尾(新写入文件会位于已有内容之后);反之,则创建新文件。 | |
ab+ | 以二进制模式打开文件,并采用追加模式,对文件具有读写权限,如果文件存在,则文件指针位于文件的末尾(新写入文件会位于已有内容之后);反之,则创建新文件。 |
with方法
with语法 可以自动完成 close操作(较简便)
(1)with open( " E:\python35\day9\集合123.png",mode=" w", encoding="utf-8") as f :
f . write( data) ##写入数据变量传值
(2)with open( " E:\python35\day9\集合123.png" ,mode=" r ", encoding="utf-8") as f :
data_new = f.read ##定义传值变量 可设为字符串
读取文件后生成文件类型对象f 并res = f.read 生成赋值变量
文件函数
2.判断可读可写
fp = open("lianxi2.txt",mode="r+",encoding="utf-8")
#readable() 功能: 判断文件对象是否可读
res = fp.readable()
print(res)
#writable() 功能: 判断文件对象是否可写
res = fp.writable()
print(res)
#for循环:文件对象fp是可迭代对象,可循环;(按照一行一行读取数据)
for i in fp:
print(i)3.文件相关的函数
#readline() 功能: 读取一行文件内容 , 基于上一行往下读取,许多次调用,
with open("lianxi2.txt",mode="r+",encoding="utf-8") as fp:
print(fp.readline())
print(fp.readline())
print(fp.readline())
print(fp.readline())#读取所有内容
with open("lianxi2.txt",mode="r+",encoding="utf-8") as fp:
res = fp.readline() # 先读取一行
while res: #循环读取全部内容
print(res)
res = fp.readline() # 再读取一行# 如果当前这一行为空 "" while res => while False
# 如果当前这一行不为空 while res => while True#读取固定长度的内容
# res = fp.readline(5)
res = fp.readline(5000)
print(res)print("<=================>")
#readlines() 功能:将文件中的内容按照换行符为间隔读取到列表当中[必会]
with open("lianxi2.txt",mode="r+",encoding="utf-8") as fp:
# ['鹅鹅鹅\n', '曲项向天歌\n', '白毛浮绿水\n', '红掌拨清波']
lst = fp.readlines()
for i in lst:
print(i.strip())
# print(lst)#writelines() 功能:将内容是字符串的可迭代性数据写入文件中 参数:内容为字符串类型的可迭代数据 [必会]
lst = ['鹅鹅鹅\n', '曲项向天歌\n', '白毛浮绿水\n', '红掌拨清波']
# 修改内容
lst[1] = "曲项向地歌\n"
# 插入新内容
lst.insert(2,"王文太帅了\n")
# print(lst)#truncate() 功能: 把要截取的字符串提取出来,清空重写 (字节)
with open("lianxi2.txt",mode="r+",encoding="utf-8") as fp:
fp.truncate(9)总结:
truncate 单位 字节
seek 单位 字节
read 单位 字符个数(如果是字符串,读的是字符个数,如果是字节流,读的是字节个数)
readline 单位 字符个数
文件操作
打开文件
file = open(file_name [, mode='r' [ , buffering=-1 [ , encoding = None ]
在 Python中,如果想要操作文件,首先需要创建或者打开指定的文件,并创建一个文件对象,而这些工作可以通过内置的 open() 函数实现。open() 函数用于创建或打开指定文件,该函数的常用语法格式如下:
'''
- file:表示要创建的文件对象。
- file_name:要创建或打开文件的文件名称,该名称要用引号(单引号或双引号都可以)括起来。需要注意的是,如果要打开的文件和当前执行的代码文件位于同一目录,则直接写文件名即可;否则,此参数需要指定打开文件所在的完整路径。
- mode:可选参数,用于指定文件的打开模式。可选的打开模式如表 1 所示。如果不写,则默认以只读(r)模式打开文件。
- buffering:可选参数,用于指定对文件做读写操作时,是否使用缓冲区。
- encoding:手动设定打开文件时所使用的编码格式,不同平台的 ecoding 参数值也不同,以 Windows 为例,其默认为 cp936(实际上就是 GBK 编码)。
'''关闭文件
注意,当操作文件结束后,必须调用 close() 函数手动将打开的文件进行关闭,这样可以避免程序发生不必要的错误。定义:
fp.close() ##写在末尾,默认格式
读文件
Python提供了如下 3 种函数,它们都可以帮我们实现读取文件中数据的操作:
read()
函数:逐个字节或者字符读取文件中的内容;
readline()
函数:逐行读取文件中的内容;
readlines()
函数:一次性读取文件中多行内容# (1) 读字符
f = open("满江红",encoding="utf8")print(f.read()) # 默认读取所有字符
print(f.read(3))
print(f.readline())
print(f.readlines())# (2) 读字节
f = open("满江红",mode="rb")
print(f.read())
print(f.read(2))
print(f.read(3))
print(f.read(2).decode())
print(f.read(12).decode())# (3) 循环读文件
f = open("满江红",encoding="utf8")
for line in f.readlines():
print(line,end="")for line in f:
print(line,end="")
写文件
f = open("满江红new",mode="w",encoding="utf8") # w:覆盖模式 a: 追加模式
f.write("怒发冲冠,凭栏处、潇潇雨歇。\n")
f.writelines(["抬望眼,","仰天长啸,壮怀激烈"]) # 将字符串列表写入文件中
f.flush()
import time
time.sleep(100)
f.close() # 没有close,只有在程序退出时才会被释放掉
内置方法seek,tell
借助seek()函数则可以移动文件指针的位置,而tell() 函数则是获取光标当前位置。
seek() 函数用于将文件指针移动至指定位置,该函数的语法格式如下:
file.seek(offset[, whence]) #提取部分文件内容
whence:作为可选参数,用于指定文件指针要放置的位置,
该参数的参数值有 3 个选择:0 代表文件头(默认值)、1 代表当前位置、2 代表文件尾。
offset:表示相对于 whence 位置文件指针的偏移量,正数表示向后偏移,负数表示向前偏移。
例如,当
whence == 0 &&offset == 3
(即 seek(3,0) ),表示文件指针移动至距离文件开头处 3 个字符的位置
六,文件操作(编码,读写文件,with方法)相关推荐
- C文件操作、读写文件 C++文件读写、文件操作
转自 飘羽随风 基于C的文件操作 在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之. 一.流式文件操作 这种方式的文件操作有一个重要的结构FILE,FI ...
- python open追加模式_Python文件操作,open读写文件,追加文本内容实例
1.open使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('thefile.txt ...
- [Python从零到壹] 三.语法基础之文件操作、CSV文件读写及面向对象
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- 【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 追加键值对数据 | 更新键值对数据 )
文章目录 一.追加键值对数据 二.更新键值对数据 三.完整代码示例 一.追加键值对数据 在上一篇博客 [C 语言]文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取 ...
- 转换流指定编码读写文件
import java.io.*;/*** 转换流指定编码读写文件*/ public class Demo1 {public static void main(String[] args) throw ...
- python打开文件写文件乱码_Python读写文件乱码问题
对开发者来说,最恼人的问题之一莫过于读写文件的时候,由于编码千差万别,出现乱码问题.好难快速解决啊... 最近我也遇到了这样的问题,经研究,把大致的解决思路拿出来共享. 1. python中习惯首先声 ...
- Java编程那些事儿——文件操作之写文件
Java编程那些事儿--文件操作之写文件 Java, Java培训, Java基础, Java学习, Java教程 11.3.1.4 写文件 如前所述,将程序内部的数据输出到程序外部的数据源,应该使用 ...
- 64位内核开发第8讲,文件操作.以及删除文件.
目录 文件操作,以及强删文件. 一丶文件操作 1.文件操作的几种方式 1.2 文件的表示 二丶文件操作的常见内核API 三丶内核中三种定义结构体的方式 四丶驱动创建文件的完整代码示例 4.1.4内核中 ...
- 【Python】文件操作(单文件操作)
目录 一.文件操作概述: 二.文件基本操作: 文件操作步骤: 1.打开文件: 2.对文件进行读写操作: 3.关闭文件的输入输出流: demo: 文件访问模式: 基础访问模式特点: 读取操作: 1.re ...
- 读取Java文件到byte数组的三种方式及Java文件操作大全(包括文件加密,String加密)
读取Java文件到byte数组的三种方式 package zs;import java.io.BufferedInputStream; import java.io.ByteArrayOutputSt ...
最新文章
- 洛谷 P3157 [CQOI2011]动态逆序对 | CDQ分治
- .NET分层登陆——机房收费系统再总结
- 这位RD同学,你好像对JD有点误解!
- 中考计算机考试作文,中考理化实验计算机考试作文
- 在Scrollview中使用AutoLayout
- 人在斯坦福,刚上CS224n
- oracle Plsql 执行update或者delete时卡死问题解决办法
- win11间歇性卡顿怎么办 windows11间歇性卡顿的解决方法
- zip4j实现文件压缩与解压缩 common-compress压缩与解压缩
- 使用网易云api、Vue 和swiper实现轮播图 (音乐app项目-第2步)
- Kotlin | Kotlin教程
- 乞讨式的助人为乐不该提倡,换下铺被拒的律师是自作自受
- 6 观察者模式off方法
- 额,我要说一件重要的事+用C++编写一个走迷宫小游戏(1.1版)
- 【网页制作】CSS文本和字体属性讲解【附讲解视频】
- variable ‘XXX cannot be implicitly captured in a lambda with no capture-default specified
- TinyBERT论文及代码详细解读
- ARP是如何工作的?
- Android官方实现的层次状态机Hierarchical State Machine源代码
- 国密局公开SM2和SM3算法或预示中国商密算法将走向开放
热门文章
- 6.4 置换基本概念
- mysql relay log 修改_MySQL relaylog + SQL_Thread 增量恢复binlog
- 安全知识、工具网址集锦(持续更新)
- 超详细Gulp打包seajs模块压缩合并,绝对对你项目有帮助 ~
- CCF中学生计算机程序设计入门篇练习2.4.2(NOI 1002 三角形) pascal
- 织梦CMS插件合集覆盖几十插件功能采集推送等
- iphone java模拟器_【Mac + Appium + Java1.8学习(三)】之IOS自动化环境安装配置以及简单测试用例编写(模拟器、真机)...
- AutoCAD2013安装说明
- word打不开html,word打不开怎么办?word文档打不开怎么办?
- 国内it软件外包公司排行榜是怎么样的