文件操作初识:

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 文件操作的更多相关文章

  1. 跟着太白老师学python day11 可迭代对象和迭代器

    如果对象的属性中有__iter__属性就说明是可迭代的,容器类的数据类型都是可迭代对象 如果对象的属性中既有__iter__属性也有__next__属性,就说明这个对象是迭代器 如何判断一个函数是不是 ...

  2. 跟着太白老师学python 09day 初识函数

    函数的最主要的目的:封装一个功能 函数的优点: 减少代码的复用率, 增加代码的阅读性 def my_len(arvg): # arvg 形参 my_len函数名,应该具有代表性,让你一看就明白 # 函 ...

  3. 跟着太白老师学python day11 闭包 及在爬虫中的基本使用

    闭包的基本概念: 闭包 内层函数对外层函数的变量(不包括全局变量)的引用,并返回,这样就形成了闭包 闭包的作用:当程序执行时,遇到了函数执行,它会在内存中开辟一个空间,如果这个函数内部形成了闭包, 那 ...

  4. 跟着太白老师学python day11 函数名的应用 globals(), locals()

    1.  函数名就是内存地址 def func(): ') print(func) >>>> <function func at 0x00000000003DC1E0> ...

  5. 跟着太白老师学python day10 函数嵌套, global , nonlocal

    函数嵌套: 第一种嵌套方法 def func(): count = 123 def inner(): print(count) inner() func() 第二种嵌套方法 count = 123 d ...

  6. 跟着太白老师学python day10 名称空间,作用域和取值顺序,变量的加载顺序

    名称空间分为3种: 1. 全局名称空间 2. 内置名称空间 3. 局部名称空间(临时) 作用域 全局作用域              1全局名称空间 2 内置名称空间 局部作用域           ...

  7. 跟着太白老师学python 10day 函数的动态参数 *args, **kwargs, 形参的位置顺序

    1. *args 接收实参的位置参数, **kwargs接收实参的关键字参数 def func(*args, **kwargs): print(args, kwargs) func(1, 2, 3, ...

  8. 简学Python第二章__巧学数据结构文件操作

    #cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...

  9. 第九章 Python文件操作

    前一阵子写类相关的内容,把老猿写得心都累了,本来准备继续介绍一些类相关的知识的,如闭包.装饰器.描述符.枚举类.异常等,现在实在不想继续,以后再开章节吧.本章弄点开胃的小菜提提神,介绍Python中文 ...

随机推荐

  1. ubuntu16.04中使用搜狗输入法Qt5无法输入中文解决方式

    1.安装fcitx-frontend-qt5 sudo apt-get install fcitx-frontend-qt5 2.将libfcitxplatforminputcontextplugin ...

  2. JSON简介[转]

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming Lan ...

  3. Netty系列之一开始使用

    Netty是用来做什么的呢,我的理解是它是一个网络开发框架,利用它能很快速方便的开发出高性能的服务端和客户端.刚开始学习java的时候你一定接触过怎么利用socket去实现服务端和客户端,后来java ...

  4. NOI2001 食物链【扩展域并查集】*

    NOI2001 食物链 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A 吃 B,B吃 C,C 吃 A. 现有 N 个动物,以 1 - N 编号.每个动物都是 A,B,C 中的 ...

  5. 常用输入法快速输入自定义格式的时间和日期(搜狗/QQ/微软拼音)

    几个主流的输入法输入 rq 或者 sj 都可以得到预定义格式的日期或者时间.然而他们都是预定义的格式:当我们需要一些其他格式的时候该怎么做呢? 本文将介绍几个常用输入法自定义时间和日期格式的方法. 主 ...

  6. ubuntu 部署Django

    1, 安装python包管理工具easy_install. sudo apt-get install python-setuptools 2,安装Django. sudo easy_install & ...

  7. linux python 图形编程 qt开发环境搭建

    我的系统是 ubuntu14.04 我们使用的是python2.7,建议安装qt4+pyqt4+eric4 eric是pyqt的界面设计器的代码生成软件. 1.安装sip 这个是python和qt之间 ...

  8. 字符编码:ASCII,Unicode和UTF-8

    字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识. 1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两 ...

  9. php基础语法(控制语句、数组、函数)

    流程控制 if -else if -else语句: switch语句: while循环: do while循环 for循环: 控制脚本执行进度 die(“输出内容”) exit是die的同义词. sl ...

  10. hadoop之 hadoop用途方向

    hadoop是什么?Hadoop是一个开源的框架,可编写和运行分不是应用处理大规模数据,是专为离线和大规模数据分析而设计的,并不适合那种对几个记录随机读写的在线事务处理模式.Hadoop=HDFS(文 ...