文件操作初识:

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. MVC MVVM和传统三层的理解

    才学疏浅,请勿喷,如果有理解不对的地方请留言 其实,每个小小的程序员都有个毛病,就是反复写一个东西会觉得这个东西没有新意. 就像让你写三层,你却还是觉得想写MVC模式. 软件小公司做B/S的大部分还是 ...

  2. 对Json的各种遍历方法

    慎用for in函数(有可能由于原型链的问题导致遍历问题): 如果要是用for in  一定要使用if (obj1.hasOwnProperty(key)) {}先做判断 解决方法 :1.eval() ...

  3. Linux shell字符串截取与拼接

    一 Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.linuxidc.com/123.htm 1  # 号截取,删除左边字符,保留右边字符. echo ${va ...

  4. WPF/UWP 绑定中的 UpdateSourceTrigger

    在开发 markdown-mail 时遇到了一些诡异的情况.代码是这么写的: <TextBox Text="{Binding Text, Mode=TwoWay}"/> ...

  5. 重温CLR(十五) 托管堆和垃圾回收

    本章要讨论托管应用程序如何构造新对象,托管堆如何控制这些对象的生存期,以及如何回收这些对象的内存.简单地说,本章要解释clr中的垃圾回收期是如何工作的,还要解释相关的性能问题.另外,本章讨论了如何设计 ...

  6. 《DSP using MATLAB》示例Example 8.11

    %% ------------------------------------------------------------------------ %% Output Info about thi ...

  7. 《DSP using MATLAB》示例Example7.14

    代码: M = 20; alpha = (M-1)/2; l = 0:M-1; wl = (2*pi/M)*l; Hrs = [1, 1, 1, zeros(1, 15), 1, 1]; % Idea ...

  8. 我常用的几个第三方 Python 库

    转自:http://blog.csdn.net/gzlaiyonghao/article/details/2966811 wxPython 如果你之前是 windows 程序员,用 MFC 或者 WI ...

  9. C++ static 用法

    一般情况下,如果有N个同类的对象,那么每一个对象都分别有自己的成员变量,不同对象的成员变量各自有值,互不相干.但是有时我们希望有某一个或几个成员变量为所有对象共有,这样可以实现数据共享. 可以使用全局 ...

  10. PHP面向对象——三大基本特性与五大基本原则

    三大特性是:封装.继承.多态 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. 封装是面向对象的特征之一,是对象和类概念的主要特 ...