day08 跟着太白老师学python 文件操作
文件操作初识:
1. 文件路径 :d:/护士主妇空姐联系方式 (文件路径不要太过复杂,容易碰到转义字符的问题, 当碰到转义字符时,需要在前面+r,或者采用双斜杠(//))
2. 编码方式 :utf-8, gbk, gb2312
3.操作方式: 只读(r),只写(w), 写读(r+), 读写(w+), 追加(a), 追加读(a+)
1. 读
r 只读模式,适合文字类文件, open的默认方式
rb 非文字类文件的只读方式
r+ 读写功能,先读后写时,写入的字符在文件最后,直接写入,由于光标在开头,将会将开头的字符覆盖
只读的后续操作方式有5种
f = open('d:/老男孩.txt', encode='utf-8', mode='r')
1.f.read() 所有都能够一次性读取,保留原来格式
2.f.read(n) 读取部分,对于文本,n以字符串个数表示, 对于非文本, n以字节个数表示,对于utf-8,一个字符用三个字节表示
3.f.readlines() 读取所有文本,读取的文本以字节形式储存在列表中
4.f.readline() 只读取一行
5.for循环读取 for line in f: print(line)
2. 写
w 只写模式, 适合文字类文件的写入, 文件不存在,创建文件, 文件存在时,清空文件,并写入
wb 非文字类文件的写入
w+ 读写模式,因为在打开文件时,文件内容就被清空,如果此时进行读的话,读出来的是空白,所以这种方法没什么用
3.追加
a 追加模式, 适合文字类文件的追加, 文件不存在,创建文件, 文件存在时,就追加在文件的末尾
ab 非文字类文件的追加,通常在图片,用于bytes类型
a+ 追加读 和 w+ 读效果是一样的
4.文件操作的其他方法
read() (上面已经提过)
write()
close() 关闭文件
seek() ......设置标志位 seek(0, 2) 将标志位放到文件的末尾 以字节进行计算
tell() 返回文件的当前标志位 字节计算
readable() 判断是否可读
writeable() 判断是否可写
trucante() 进行截取, 读取的方式必须是可写方式,因此我们需要使用a+,或者 r+,不能使用w模式,因为一打开文件就被清除了
5.小练习:
1. 图片的复制
#文件复制 #非文字文件类型的编码方式是字节类型
f = open('美女1.jpg', mode='rb')
f1 = open('美女3.jpg', mode='wb')
content = f.read()
f1.write(content)
f.close()
f1.close()
2. 文本文件的修改
import os
with open('文件操作3', encoding='utf-8', mode='r') as f, \
open('新文件操作3', encoding='utf-8', mode='w') as f1:
for line in f:
line = line.replace('南方', '北方') #字符替换
f1.write(line) os.remove('文件操作3') #删除原文件
os.rename('新文件操作3', '文件操作3') #命名新文件为原文件
day08 跟着太白老师学python 文件操作的更多相关文章
- 跟着太白老师学python day11 可迭代对象和迭代器
如果对象的属性中有__iter__属性就说明是可迭代的,容器类的数据类型都是可迭代对象 如果对象的属性中既有__iter__属性也有__next__属性,就说明这个对象是迭代器 如何判断一个函数是不是 ...
- 跟着太白老师学python 09day 初识函数
函数的最主要的目的:封装一个功能 函数的优点: 减少代码的复用率, 增加代码的阅读性 def my_len(arvg): # arvg 形参 my_len函数名,应该具有代表性,让你一看就明白 # 函 ...
- 跟着太白老师学python day11 闭包 及在爬虫中的基本使用
闭包的基本概念: 闭包 内层函数对外层函数的变量(不包括全局变量)的引用,并返回,这样就形成了闭包 闭包的作用:当程序执行时,遇到了函数执行,它会在内存中开辟一个空间,如果这个函数内部形成了闭包, 那 ...
- 跟着太白老师学python day11 函数名的应用 globals(), locals()
1. 函数名就是内存地址 def func(): ') print(func) >>>> <function func at 0x00000000003DC1E0> ...
- 跟着太白老师学python day10 函数嵌套, global , nonlocal
函数嵌套: 第一种嵌套方法 def func(): count = 123 def inner(): print(count) inner() func() 第二种嵌套方法 count = 123 d ...
- 跟着太白老师学python day10 名称空间,作用域和取值顺序,变量的加载顺序
名称空间分为3种: 1. 全局名称空间 2. 内置名称空间 3. 局部名称空间(临时) 作用域 全局作用域 1全局名称空间 2 内置名称空间 局部作用域 ...
- 跟着太白老师学python 10day 函数的动态参数 *args, **kwargs, 形参的位置顺序
1. *args 接收实参的位置参数, **kwargs接收实参的关键字参数 def func(*args, **kwargs): print(args, kwargs) func(1, 2, 3, ...
- 简学Python第二章__巧学数据结构文件操作
#cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...
- 第九章 Python文件操作
前一阵子写类相关的内容,把老猿写得心都累了,本来准备继续介绍一些类相关的知识的,如闭包.装饰器.描述符.枚举类.异常等,现在实在不想继续,以后再开章节吧.本章弄点开胃的小菜提提神,介绍Python中文 ...
随机推荐
- ubuntu16.04中使用搜狗输入法Qt5无法输入中文解决方式
1.安装fcitx-frontend-qt5 sudo apt-get install fcitx-frontend-qt5 2.将libfcitxplatforminputcontextplugin ...
- JSON简介[转]
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming Lan ...
- Netty系列之一开始使用
Netty是用来做什么的呢,我的理解是它是一个网络开发框架,利用它能很快速方便的开发出高性能的服务端和客户端.刚开始学习java的时候你一定接触过怎么利用socket去实现服务端和客户端,后来java ...
- NOI2001 食物链【扩展域并查集】*
NOI2001 食物链 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A 吃 B,B吃 C,C 吃 A. 现有 N 个动物,以 1 - N 编号.每个动物都是 A,B,C 中的 ...
- 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/微软拼音)
几个主流的输入法输入 rq 或者 sj 都可以得到预定义格式的日期或者时间.然而他们都是预定义的格式:当我们需要一些其他格式的时候该怎么做呢? 本文将介绍几个常用输入法自定义时间和日期格式的方法. 主 ...
- ubuntu 部署Django
1, 安装python包管理工具easy_install. sudo apt-get install python-setuptools 2,安装Django. sudo easy_install & ...
- linux python 图形编程 qt开发环境搭建
我的系统是 ubuntu14.04 我们使用的是python2.7,建议安装qt4+pyqt4+eric4 eric是pyqt的界面设计器的代码生成软件. 1.安装sip 这个是python和qt之间 ...
- 字符编码:ASCII,Unicode和UTF-8
字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识. 1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两 ...
- php基础语法(控制语句、数组、函数)
流程控制 if -else if -else语句: switch语句: while循环: do while循环 for循环: 控制脚本执行进度 die(“输出内容”) exit是die的同义词. sl ...
- hadoop之 hadoop用途方向
hadoop是什么?Hadoop是一个开源的框架,可编写和运行分不是应用处理大规模数据,是专为离线和大规模数据分析而设计的,并不适合那种对几个记录随机读写的在线事务处理模式.Hadoop=HDFS(文 ...