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 ,只读模式[默认模式,文件必须存在,不存在则抛出异 ...
随机推荐
- RQNOJ PID331 家族
题目描述 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系. 规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚.如果x,y是 ...
- django 视图与网址
我是一个新手,内容粗糙,望大家多多指点.在这里我只是总结自身所学. 视图与网址 操作文件:urls.py.views.py urls.py 作用:用于处理前台的链接(如前台访问:127.0.0.1:8 ...
- for语句和if语句画正方形菱形
public static void main(String[] args) { int n =8; // 空心正方形 for(int i=0;i<=n;i++){ if(i==0||i==n) ...
- 还抱着 Java 8 不放,也是醉了!
作者 | Trisha Gee原文:https://dzone.com/articles/beyond-java-8译者 | 弯月 责编 | 屠敏出品 | CSDN(ID:CSDNnews) 不说 A ...
- 递归算法介绍及Java应用实战
什么是递归算法 递归算法是把问题转化为规模缩小了的同类问题的子问题,然后递归调用函数(或过程)来表示问题的解.一个过程(或函数)直接或间接调用自己本身,这种过程(或函数)叫递归过程(或函数). 递归过 ...
- DNS解析全过程详解
1.Chrome浏览器 会首先搜索浏览器自身的DNS缓存(缓存时间比较短,大概只有1分钟,且只能容纳1000条缓存),看自身的缓存中是否有www.linux178.com 对应的条目,而且没有过期,如 ...
- notepad++编辑软件
官网:http://notepad-plus-plus.org/ 官网截图(2015/4/29): 版本: Notepad++ 6.7.7 下载地址:http://notepad-plus-plus. ...
- 深度学习之Tensorflow 工程化项目实战 配套资源
https://www.aianaconda.com/index/CodeProject
- linux随笔-05
shell脚本&定时任务 编写Shell脚本 可以将Shell终端解释器当作人与计算机硬件之间的“翻译官”. Shell脚本命令的工作方式有两种:交互式和批处理. 交互式(Interactiv ...
- 爬虫示例--requests-module
reuqests_test .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { ...