08、python的基础--->文件操作
注:用btyes方式的一般都是在“非文字类的(比如图片)”
1、文件的读取
>>>第1种
#绝对路径
s = open('E:\天气.txt', mode='r', encoding='utf-8') # 用“utf-8 的方式去读取文件内容”,(绝对路径E:\天气.txt)
content = s.read()
print(content)
s.close() #相对路径
s = open('天气', mode='r', encoding='utf-8') # 用“utf-8 的方式去读取文件内容”,(相对路径天气-->当前目录下创建)
content = s.read() # read把数据类型转换 bytes--->str
print(content)
s.close()
>>>第2种
# 用bytes 的方式去读(b'\xe4\xbb\x8a\xe5\xa4\xa9\xe4\xb8\x8b\xe5\xa4\xa7\xe9\x9b\xa8\xe4\xba\x86\xe3\x80\x82')
s = open('天气', mode='rb')
content = s.read()
print(content)
s.close()
2、文件的写入
>>>1、对于w:没有此文件就会创建新文件
s = open('天气1', mode='w', encoding='utf-8') # 新创建一个文件'天气1',并且写入了'全湿透了'
s.write('全湿透了')
s.close()
>>>2、对于已有文件就会直接删除内容,再重新写入内容
s = open('天气1', mode='w', encoding='utf-8')
s.write('怎么办')
s.close()
>>>3、用btyes方式写入
s = open('天气1', mode='wb')
s.write('快出太阳吧'.encode('utf-8'))
s.close()
3、追加功能(只能进行一次追加,不能读取)
>>>第1种:
s = open('天气1', mode='a', encoding='utf-8') # mode = ‘a' (全湿透了快回家换衣服)
s.write('快回家换衣服')
s.close()
>>>第2种:用btyes方式追加
s = open('天气1', mode='ab')
s.write('快回家换衣服'.encode('utf-8')) # (全湿透了快回家换衣服快回家换衣服)
s.close()
# a+ 可以进行追加之后读取
s = open('天气1', mode='a+', encoding='utf-8') # mode = ‘a' (全湿透了快回家换衣服)
s.write('快回家换衣服')
s.seek(0) # 将光标挪到最前面
print(s.read())
s.close()
4、文件的读写(只能读-写两步,没办法再读再写(功能与追加类似))
s = open('天气', mode='r+', encoding='utf-8')
content = s.read() # 先读后写
s.write('全湿透了') # 先读之后,光标到最后,再写入内容(今天下大雨了全湿透了)
s.close()
# btyes读写
s = open('天气1', mode='r+b')
print(s.read())
s.write('AAAa'.encode('utf-8'))
s.close()
5、文件的写读(先清除内容再写入)
s = open('天气1', mode='w+', encoding='utf-8')
s.write('AAA') # 先写,写之前光标在前,把内容覆盖,再从光标位置往后读取内容(一般光标后面无数据)
s.seek(0) # seek()调光标位置,再读取 (AAA)
print(s.read())
s.close()
6、功能详解
>>>文件内容(今天下大雨了全湿透了)
s = open('天气', mode='r+', encoding='utf-8')
content = s.read(3) # read 直接读取字符
print(content) # 输出 "今天下"
s.close()
s = open('天气', mode='r+', encoding='utf-8')
s.seek(3) # seek 按照字节去定光标,一个中文三个字节,只能按照3 的倍数去读
content = s.read()
print(content) # 输出:天下大雨了全湿透了
print(s.readable()) # 判断是否可读
line = s.readline() # 一行一行的去读内容
line = s.readlines() # 以一个列表形式全部输出,每一行当做列表的一个元素(可用for循环打印出来)
print(line)
for line in s: # 将内容一行一行循环打印出来
print(line)
s.truncate(4) # 对原文件内容进行按字节截取
s.close()
>>>使用循环打印方式
with open('天气', mode='r+', encoding='utf-8') as s: # 直接按行循环打印出内容,无需close(),自动关闭
print(s.read())
with open('天气', mode='r+', encoding='utf-8') as s,\
open('天气', mode='w+', encoding='utf-8') as f: # 可以同时打开多个文件进行操作
>>>光标检测
s = open('天气', mode='r+', encoding='utf-8')
s.seek(3)
print(s.tell()) # 检测光标位置,应用:断点续传
s.close()
----->小程序
# 天气1内容:快回家里
s = open('天气1', mode='a+', encoding='utf-8')
s.write('换大衣服')
count = s.tell() # 先找到光标位置
s.seek(count-9) #将光标诺往前9个字节即三个字符,然后读取
print(s.read()) # 输出:大衣服
s.close()
08、python的基础--->文件操作的更多相关文章
- python语法基础-文件操作-长期维护
############### python-简单的文件操作 ############### # python中文件的操作 # 文件操作的基本套路 # 1,打开文件,默认是是只读方式打开文件 ...
- python os&shutil 文件操作
python os&shutil 文件操作 # os 模块 os.sep 可以取代操作系统特定的路径分隔符.windows下为 '\\' os.name 字符串指示你正在使用的平台.比如对于W ...
- Python的高级文件操作(shutil模块)
Python的高级文件操作(shutil模块) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果让我们用python的文件处理来进行文件拷贝,想必很多小伙伴的思路是:使用打开2个 ...
- python 历险记(三)— python 的常用文件操作
目录 前言 文件 什么是文件? 如何在 python 中打开文件? python 文件对象有哪些属性? 如何读文件? read() readline() 如何写文件? 如何操作文件和目录? 强大的 o ...
- Python入门篇-文件操作
Python入门篇-文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.文件IO常用操作 open:打开 read:读取 write:写入 close:关闭 readlin ...
- Python之常用文件操作
Python之常用文件操作
- Python基础(六) 基础文件操作
今天学习python下对文件的基础操作,主要从open函数.File对象的属性.文件定位.简单操作.举例说明几个步骤开始学习,下面开始进入今天的主题: 一.open函数介绍 open函数主要是打开一个 ...
- 小白学 Python(18):基础文件操作
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- python基础-文件操作
一.文件操作 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作. 打开文件的模式有: r ,只读模式[默认模式,文件必须存在,不存在则抛出异 ...
随机推荐
- 洛谷P4169 [Violet]天使玩偶/SJY摆棋子(CDQ分治)
[Violet]天使玩偶/SJY摆棋子 题目传送门 解题思路 用CDQ分治开了氧气跑过. 将输入给的顺序作为第一维的时间,x为第二维,y为第三维.对于距离一个询问(ax,ay),将询问分为四块,左上, ...
- 基于第二次数独游戏,添加GUI界面
高级软件工程第三次作业:基于第二次数独游戏,添加GUI界面.GUI界面代码如下: package firstGui; import java.awt.*; import java.awt.event. ...
- 绿盟扫出来个http host 漏洞
这个漏洞搞了大半天,想过从后台拦截,也想过从前台拦截,都是无从下手!网上也找了很多资料,有点乱,后来自己结合网上的办法,搞出如下解决办法:在tomcat server.xml里配置host 因为外网是 ...
- go module管理依赖包
go mod 最大的好处就是摆脱了GOPATH这个限制,在除了GOPATH以外的目录下也能开展你的项目 go mod使用: 1,确保你的go版本是1.1以上 2,创建一个项目目录example,并添加 ...
- MQ之Kafka
现代的互联网分布式系统,只要稍微大一些,就一定逃不开3类中间件:远程调用(RPC)框架.消息队列.数据库访问中间件.Kafka 是消息队列中间件的代表产品,用 Scala 语言实现; 基本概念 首先, ...
- Web前端基础学习-2
盒子模型 在页面中,我们将所有的元素全部看做是一个盒子,页面布局就是将大大小小不同的盒子堆砌在一起,而一个盒子由以下几部分组成: padding:内边距,内容到边框的距离: margin:外边距,其他 ...
- 【记录】elasticsearch 注解
先记录地址,之后再整理 参考地址:https://blog.csdn.net/qq_28364999/article/details/81109666 https://blog.csdn.net/dy ...
- firefox浏览器强制取消自动更新
问题:Firefox浏览器,在浏览器的设置中已经设置了取消自动升级,实际退出Firefox浏览器重新启动浏览器后还是会升级到最新版本.影响:Firefox浏览器不同的版本的插件的支持兼容不一样,如果需 ...
- 一、创建且运行JPA工程
1. 创建JPA 工程 (1)选择创建 JPA Project,注意不是Java Project (2)JPA version选择 2.0 (3)选择用户库,否则会出现 At least one us ...
- RIDE使用介绍
[转载] RIDE是一款专门用来编辑Robot Framework用例的软件,用Python编写并且开源.当我们针对一个系统编写好一套用例后,每当我们对系 统做一些更改的时候,便可以把已经写好的用例拿 ...