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 ,只读模式[默认模式,文件必须存在,不存在则抛出异 ...
随机推荐
- 箫声远(本人)的小站(为展示作品、简历,基于github pages)
箫声远的个人前端小站在线地址
- Html5 学习笔记 --》布局
不推荐: 浮动布局: footer 设置 clear : both 清理浮动 | header | |边 | | |内 | 内容 ...
- SSDT and Shadow SSDT table
参考:http://x86.renejeschke.de/html/file_module_x86_id_313.html http://msdn.microsoft.com/en-us/librar ...
- equals方法重写
在java中常见的equals方法的重写: 举例:一个自定义类ball如下 public class Ball { private String name; private int weight; p ...
- go 复合数据类型
数组 数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成.因为数组的长度是固定的,因此在Go语言中很少直接使用数组. 数组声明方式: #第一种 ] int balance ...
- Python之基本的日期与时间转换 datetime、 dateutil模块
简单举例datetime模块 from datetime import timedelta,datetime a = timedelta(days=2, hours=6) b = timedelta( ...
- js转换成布尔类型boolean
/** * js转换成布尔值 * a.转换方法:Boolean(var) * b.数字转换成布尔,除了0与NaN,其余都是true * c.字符串转换成布尔,除了空串"",其余都是 ...
- console.log的另一种用法
// console.log用法 var foo, bar; console.log(`foo's type: ${foo}`, `bar's type: ${bar}`); 输出:
- Vue中子组件数据跟着父组件改变和父组件数据跟着子组件改变的方法
一,子组件数据跟着父组件改变 父组件的代码 <template> <div class="home"> <img alt="Vue logo ...
- 第八组Postmortem事后分析
第八组Postmortem事后分析 一.团队成员总结的改进和教训 隆晋威:Beta阶段完善架构设计,分工更加明确,文档更丰富,交流带来开销减少.Alpha技术选型不固定,分工混乱,没有方便的测试引擎, ...