day08 文件操作
1、三种字符串:
(1)u'' 普通字符串 ---> u'abc' ---> 默认的文本方式,以字符作为文本的输出方式
(2)b'' 二进制字符串 ---> b'ASCII码' ---> 以二进制(字节)作为文本输出方式,且文本内容必须为ASCII码
(3)r'' 原义字符串 ---> r'\n\t' ---> 将引号中的转移字符串以原本的意义表示出来(多用于文件路径的表示) 2、文件操作步骤
(1)通过文件名等从硬盘中找到相应的文件地址,使操作系统就有文件的操作权
(2)使用应用程序对文件进行操作
(3)操作完成后,应用程序向操作系统发送请求,使其释放文件的操作权 3、打开文件的方式
(1)使用open打开文件
f = open("文件路径及文件名","文件打开模式",enconding="utf-"8)
(2)使用with open...as 的方式进行文件操作
with open("文件路径及文件名","文件打开模式",enconding="utf-8") as f:
(3)使用with open 进行文件操作时,嵌套使用
with open("文件路径及文件名","操作模式",enconding="utf-8") as f1:
with open("文件的路径及文件名","操作模式",enconding="utf-8") as f2:
对文件的操作 4、文件的操作模式
主模式: r | w | a | x
从模式: t | b | + (1)r ---> 基本读操作
with open("文件路径及文件名","r",enconding="utf-8") as f1:
f1.read() --> 将整个文件读取进内存
f1.readline() --> 读取一行文件
f1.readlines() --> 将每行内容依次添加进列表中,并返回列表
对文件进行读操作,如果文件不存在则报错
# 如果想要一行一行的读取文件,可以使用for循环 ---> 重要点
for line in f1:
print(line) (2)w ---> 基本写操作
with open("文件路径及文件名","w",enconding="utf-8") as f1:
f1.write("哈哈")
f1.writerlines([必须为可迭代的对象,并且内容为字符串]) 对文件进行写操作,如果文件不存在则创建文件,如果文件存在,则清空文件从头开始写 (3)a ---> 追加操作
with open("文件路径及文件名","a",enconding="utf-8") as f1:
采用追加的方式对文件进行写操作,默认从文件的结尾添加 (4)x ---> 写操作,文件不存在创建,文件存在报错
with open("文件路径及文件名","x",enconding="utf-8") as f1:
如果文件存在则报错,如果文件不存在则创建文件并写入 t ---> 以文本方式进行文件的操作,是文件操作的默认方式, rt = r
(5) rt 以普通方式进行文件读操作,如果文件不存在则抱错问题 ---> 与 r 相同
(6) wt 以普通字符串的方式对文件进行写操作,如果文件存在则清空后写入,如果文件不存在则创建文件后写入 --> 与 w 相同
(7) at 以普通文本方式对文件进行追加操作,,默认写到文件的末尾 --->与 a 相同 b ---> 以字节的方式对文件进行操作
with open("文件路径及文件名","wb") as f1:
f1.write()
(8) rb 以字节的方式对文件进行读操作,如果文件不存在则报错
(9) wb 以字节的方式对文件进行操作,如果文件存在则清空后添加,如果文件不存在则创建文件
(10) ab 以字节的方式对文件进行操作,默认添加到文件的末尾 + ---> 以读写的方式对文件进行操作
(11) r+ 可读可写的读,如果文件不存在则报错,【如果文件存在则从头开始替换写】
(12) w+ 可读可写的写,如果文件存在则清空写,如果文件不存在则进行创建文件后进行写入
(13) a+ 可读可写的追加,如果文件不存在则进行创建,如果文件存在则在末尾进行添加 5、游标操作
游标由于是以字节作为移动的单位,所以文件必须是b模式,又因为只有在读取文件时才有游标,所以,文件的游标概念只有在 rb 模式下才能起作用
游标操作使用seek()方法,seek('移动的位数','起始的位置')
起始的位置主要有三个: 0 --> 文档开头
1 --> 当前位置
2 --> 文档末尾
with open("3.txt", "rb") as f:
f.seek(-2, 2)
print(f.read(2)) 6、文档的复制
with open("3.txt","r",encoding="utf-8") as f1:
with open("4.txt","w",encoding="utf-8") as f2:
for line in f1:
f2.write(line) 7、enconding编码
在使用 t 模式进行文件操作时,需要标明编码方式,enconding="utf-8"
在使用 b 模式进行文件操作时,不能标明编码方式,否则会报错
day08 文件操作的更多相关文章
- day08——文件操作
day08 文件操作: open() :打开 f (文件句柄)= open("文件的路径(文件放的位置)",mode="操作文件的模式",encoding=&q ...
- day08文件操作的三步骤,基础的读,基础的写,with...open语法,文件的操作模式,文件的操作编码问题,文件的复制,游标操作
复习 ''' 类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5 ...
- day08文件操作
今日内容 文件操作 内容详细 1.打开文件 1.open("作业讲解.py",mode="r",encoding="utf-8") 2.文件 ...
- Python集训营45天—Day08 (文件操作)
目录 1. 文件操作介绍 2. 文件的读写 2.1 文本文件 2.2 二进制文件 2.3 JSON文件 3. 文件的定位,重命名和删除 4. 文件夹的相关操作 1. 文件操作介绍 大家应该听说过一句话 ...
- python day08 文件操作
2019.4.8 S21 day08笔记总结 一.进制 对于计算机而言无论是文件存储 / 网络传输数据本质上都是:二进制(010101010101),如:电脑上存储视频/图片/文件都是二进制: QQ/ ...
- Python:Day08 文件操作
能调用方法的一定是对象! 文件的操作分为三步: 1.打开文件 2.操作文件 3.关闭文件 f= open('小重山','r',encoding='utf8') #以读的方式打开一个文件,如果文件不存在 ...
- 铁乐学Python_day08_文件操作
一.[基本的文件操作] 参数: 1.文件路径: 2.编码方式: 3.执行动作:(打开方式)只读,只写,追加,读写,写读! #1. 打开文件,得到文件句柄并赋值给一个变量 f = open('E:/Py ...
- day08(字符编码,字符与字节,文件操作)
一,复习 ''' 类型转换 1.数字类型:int() | bool() | float() 2.str与int: int('10') | int('-10') | int('0') | float(' ...
- day08 python文件操作
day08 python 一.文件操作 1.文件操作的函数 open(文件名, mode=模式, encoding=字符集) 2.模式: r, w, a, r+ ...
随机推荐
- 我们为什么要使用RabbitMQ?
一.前言 这篇文章就是讲RabbitMQ的好处,你可能要说RocketMQ很好呀,我们主要看上的就是RabbitMQ支持多语言的客户端,很符合我们公司的现状,不要我们花费功夫去搞一个客 ...
- photoshop实例实战(入门级)教程
PS对街拍女孩照片增加质感(2019-03-19 17:57) PS制作水火相溶特效文字图片(2019-03-19 17:49) PS制作简洁漂亮的立体抽丝文字(2019-03-19 17:16) P ...
- Navicat 连接VMware中Ubuntu 下的mysql5.7遇到的坑
1.用Navicat连接虚拟机下的mysql出现问题: 2003- Can't connect MySQL Server on '192.168.*.*'(10038). 解决方案: 方法:直接授权( ...
- mybatis-generator自动生成代码插件
mybatis自动生成代码(实体类.Dao接口等)是很成熟的了,就是使用mybatis-generator插件. 它是一个开源的插件,使用maven构建最好,可以很方便的执行 插件官方简介: http ...
- UOJ#449. 【集训队作业2018】喂鸽子(期望dp)
题意 有 \(n\) 只鸽子,每只鸽子需要 \(k\) 粒玉米才能喂饱.问每次随意喂给 \(n\) 个鸽子中的一个,期望多久所有鸽子都被喂饱. 对于 \(998244353\) 取模. 数据范围 \( ...
- python3 魔法方法
魔法方法是一些内置的函数,开头和结尾都是两个下划线,它们将在特定情况下(具体是哪种情况取决于方法的名称)被Python调用,而几乎不需要直接调. 1.__new__ 2.__init__ 3.__st ...
- es定期删除数据
es定期删除数据 1.定期删除索引 使用sentinl报警后,会产生大量如下索引,虽然不占空间,但时间久了也不好,故写个脚本定期删除 脚本如下: 1 #!/bin/bash 2 #只保留5天内的日志索 ...
- flink部署操作-flink standalone集群安装部署
flink集群安装部署 standalone集群模式 必须依赖 必须的软件 JAVA_HOME配置 flink安装 配置flink 启动flink 添加Jobmanager/taskmanager 实 ...
- laravel 配置MySQL读写分离
前言:说到应对大流量.高并发的解决方案的时候,总会有这样的回答,如:读写分离,主从复制...等,数据库层今天先不讨论,那么今天我们就来看看怎么在应用层实现读写分离. 框架:laravel5.7(所有配 ...
- 理解依赖注入,laravel IoC容器
在看laravel文档的时候,有一个服务容器(IoC)的概念.它是这样介绍的:Laravel 服务容器是一个用于管理类依赖和执行依赖注入的强大工具.依赖注入听上去很花哨,其实质是通过构造函数或者某些情 ...