08知识点梳理   文件操作
一 .文件操作 r (只读)
1.r (读) rb(字节)
f=open("果蔬大杂烩",mode="r",encoding="UTF-8")
content=f.read()
print(content) 2.rb(字节) MP3 图像 视频
f=open("果蔬大杂烩",mode="rb")
content=f.read()
print(content)
#绝对路径: 从磁盘根⽬录开始⼀直到⽂件名. ( "d:/**/b**/") or ("http:/**/**/")
#相对路径: :同⼀个⽂件夹下的⽂件. 相对于当前这个程序所在的⽂件夹⽽⾔. 如果在同⼀个⽂件夹中. 则相对路径就是这个⽂件名("f/**/**/").
# 如果在上⼀层⽂件夹. 则要("../**/**/")
3.读取文件的方法( 五种)
方法一 read() 文件中的内容全部读取.
f=open("果蔬大杂烩",mode="r",encoding="UTF-8")
content=f.read()
print(content)
f.close()
方法二 read(n) 读取n个字符 read(n) 读取n个字符. 需要注意的是. 如果再次读取. 那么会在当前位置继续去读⽽不
#是从头读, 如果使⽤的是rb模式. 则读取出来的是n个字节
f=open("果蔬大杂烩",mode="r",encoding="UTF-8")
content=f.read(7)
print(content)
f.close()
f=open("果蔬大杂烩",mode="rb")
content=f.read(3)
print(content)
f.close()
方法三 readline() ⼀次读取⼀⾏数据, 注意: readline()结尾, 注意每次读取出来的数据都会有⼀
#个\n 所以呢. 需要我们使⽤strip()⽅法来去掉\n或者空格
f=open("果蔬大杂烩",mode="r",encoding="UTF-8")
content=f.readline()
print(content.strip())
f.close()
方法四 readlines() readlines()将每⼀⾏形成⼀个元素, 放到⼀个列表中. 将所有的内容都读取出来. 所以
#也是. 容易出现内存崩溃的问题.不推荐使⽤
f=open("果蔬大杂烩",mode="r",encoding="UTF-8")
lst=f.readlines()
for line in lst:
print(line)
f.close()
方法五 循环读取 这种⽅式是组好的. 每次读取⼀⾏内容.不会产⽣内存溢出的问题
f=open("果蔬大杂烩",mode="r",encoding="UTF-8")
for line in f:
print(line)
f.close()
# 比较
# print("刘德华") 各输出各的
# print("周润发") 各输出各的
# print("刘德华",end="")
# print("周润发") 输出"刘德华周润发"
二 .文件操作 w (写文件)
1.w (写文件)
f=open("歌单",mode="w",encoding="UTF-8")
f.write("开始懂了")
f.write("我怀念的\n")
f.write("逆光")
f.write("绿光")
f.flush()
f.close()
2. wb (字符)
f=open("菜单",mode="wb")
f.write("烤全羊".encode("UTF-8"))
f.write("满汉全席".encode("UTF-8"))
f.write("北京烤鸭".encode("UTF-8"))
f.flush()
f.close()
三 .文件操作 a (追加)
1. a (追加)
f=open("歌单",mode="a",encoding="UTF-8")
f.write("寓言")
f.write("阿刁\n")
f.write("欧若拉")
f.flush()
f.close()
2. ab (字节)
f=open("歌单",mode="ab")
f.write("隐形的翅膀".encode("UTF-8"))
f.write("亲爱的这不是爱情".encode("UTF-8"))
f.flush()
f.close()
四 文件操作 r+ (读写) 先读后写
f=open("果蔬大杂烩",mode="r+",encoding="UTF-8")
content=f.read()
print(content)
f.write("奇异果")
f.flush()
f.close()
五 文件操作 w+ (写读) 先清空,再写入,最后读取 结果是空
f=open("歌单",mode="w+",encoding="UTF-8")
f.write("红豆")
f.write("流年")
content=f.read()
print(content)
f.close()
六 .文件操作 a+ (追加读) 不论先读后读 都读不到数据.
f=open("歌单",mode="a+",encoding="UTF-8")
content=f.read()
f.write("七里香")
print(content)
七 其他相关操作 seek(n) ; tell() ;truncate() .
1 .seek(n)光标移到 n 位置
# 移动的单位是byte. 所以如果是UTF-8的中⽂部分要是3的倍数.,
# 移到开头seek(0); 移动到结尾: seek(0,2)
# # (seek的第⼆个参数表⽰的是从哪个位置进⾏偏移, 默认是0 表⽰开头, 1 表⽰当前位置, 2 表⽰结尾. 第一个参数表示偏移量).
f=open("果蔬大杂烩",mode="r+",encoding="UTF-8")
f.seek(0)
content=f.read()
print(content)
f.seek(0,2)
content=f.read()
print(content)
2. tell(_) 获取当前光标在什么位置
f=open("果蔬大杂烩",mode="r+",encoding="UTF-8")
f.read(5)
print(f.tell())
# 结果显示光标在15.(第五个字后面)
3. truncate() 截断文件 .
根据光标位置保留前面的内容,删除后面的内容.
#如果truncate()给了参数,和光标没关系,将文件从头到参数之间的内容保留.
f=open("歌单",mode="r+",encoding="UTF-8")
content=f.read(3)
f.seek(3)
f.truncate()
print(content)
# 深坑请注意: 在r+模式下. 如果读取了内容. 不论读取内容多少. 光标显⽰的是多少. 再写入
#或者操作⽂件的时候都是在结尾进⾏的操作.
八 修改文件 with for循环
1.with
import os
with open("五行",mode="r",encoding="UTF-8") as f1,\
open("五行_new",mode="w",encoding="UTF-8")as f2:
content=f1.read()
new_content=content.replace("金","银")
f2.write(new_content)
os.remove("五行")
os.rename("五行_new","五行")
2. for 循环
import os
with open("五行",mode="r",encoding="UTF-8") as f1,\
open("五行_new",mode="w",encoding="UTF-8")as f2:
for line in f1:
new_line=line.replace("金","银")
f2.write(new_line)
os.remove("五行")
os.rename("五行_new","五行")

python全栈开发 * 08知识点汇总 * 180608的更多相关文章

  1. python全栈开发 * 10知识点汇总 * 180612

    10 函数进阶 知识点汇总 一.动态参数 形参的第三种1.动态接收位置传参 表达:*args (在参数位置编写 * 表⽰接收任意内容) (1)动态位置参数def eat(*args): print(a ...

  2. python全栈开发 * 01知识点汇总 * 180530

    一 python简介. 1.创始人:  吉多 .范罗苏姆  \   (Guido van Rossum). 2.时间  :  1989年. 3.主要应用领域  :  云计算 \  WEB开发  \   ...

  3. python全栈开发 * 32知识点汇总 * 180717

    32 网络编程 (一)一.架构 定义:程序员开发的一种模式. 分类: C/S 架构 C/S即:Client与Server , 客户端/ 服务器模式 . 缺点 : 冗余 B/S 架构 Browser与S ...

  4. python全栈开发 * 27知识点汇总 * 180710

    27   time  os  sys  模块 time 模块 一.表示时间的三种方式 时间戳(timestamp), 元组(struct_time),格式化时间字符串(Format string) 小 ...

  5. python全栈开发 * 26知识点汇总 * 180709

    26 logging collections random 模块 一.logging低配:日志不能写入文件与显示同时进行 import logging logging.basicConfig(leve ...

  6. python全栈开发 * 12 知识点汇总 * 180530

    12 知识点总结 装饰器进阶 ⼀. 通⽤装饰器的回顾1.开闭原则: 对增加功能开放. 对修改代码封闭2.装饰器的作⽤: 在不改变原有代码的基础上给⼀个函数增加功能3.通⽤装饰器的写法:def wrap ...

  7. python全栈开发 * 36知识点汇总 * 180721

    36 操作系统的发展史 进程一.手工操作--穿孔卡片 1.内容: 程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制 台开关启动程序针对 ...

  8. python全栈开发 * 31知识点汇总 * 180716

    31 模块和包一.模块(一)模块的种类:内置模块,自定义模块,扩展模块第三方模块(二)自定义模块 1.模块的创建 : 新建一个py文件. 2.模块名 : 模块名需要符合变量的命名规范. 3.模块的导入 ...

  9. python全栈开发 * 24 知识点汇总 * 180705

    24 模块-------序列化一.什么是模块 模块:py文件就是一个模块.二.模块的分类:(1)内置模块 (登录模块,时间模块,sys模块,os模块)(2)扩展模块 (itchat 微信有关,爬虫,b ...

随机推荐

  1. javascript 回调函数定义 模板

    函数定义: function callfun(in_param,callback) { console.log(in_param); var out_param='bbbbb'; return (ty ...

  2. iOS ReplayKit实时录制屏幕实现方案的细节记录

    项目有个需求,需要把ios设备上的操作画面实时传输出去,也就是类似推流手机直播画面的方案. 一番调研后发现在ios中,我们可以通过ios自带ReplayKit框架实现. 关于ReplayKit的讲解, ...

  3. Docker入门 - 005 Docker 容器连接

    Docker 容器连接 前面我们实现了通过网络端口来访问运行在docker容器内的服务.下面我们来实现通过端口连接到一个docker容器 网络端口映射 我们创建了一个 python 应用的容器. do ...

  4. Vmware 虚拟机无法启动

    问题背景: 自己的电脑坏了,用的事小伙伴的电脑,安装VMware 软件,然后创建虚拟机(放在移动硬盘上).在操作虚拟主机的时候,中间不小心碰到了移动硬盘, 然后移动硬盘就掉线了.这个时候再去启动虚拟主 ...

  5. CTF线下防御战 — 让你的靶机变成“铜墙铁壁”

    本文首发安全客,未经允许禁止转载.原文链接 一. 前言 随着CTF的普及,比赛的形式也有了越来越多的花样,对于线下赛来说,开始出现了安全加固或者防御战之类的环节,亦或者因为拿下靶机后不希望其他攻击者进 ...

  6. stm32f0 学习

    http://blog.csdn.net/mrlixirong/article/category/5842873

  7. gsoap入门:C/C++代码生成及编译--包含soapcpp2 -qname添加命名空间后报错的解决方法--可用

    gsoap是什么 先来一段百度百科,说说gsoap是什么: gSOAP一种跨平台的开源的C/C++软件开发工具包.生成C/C++的RPC代码,XML数据绑定,对SOAP Web服务和其他应用形成高效的 ...

  8. gsoap使用总结

    WebService.soap.gsoap基本概念 WebService服务基本概念:就是一个应用程序,它向外界暴露出一个可以通过web进行调用的API,是分布式的服务组件.本质上就是要以标准的形式实 ...

  9. python 读取mysql数据至csv文件中,并发送邮件

    test 代码: #coding:utf-8 ''' Created on 2019年2月18日 @author: Administrator ''' import ConfigParser impo ...

  10. MySQL-监控告警系统

    开源地址: https://github.com/ycg/mysql_web QQ: 779647966 Email: ycg166911@163.com 利用python的flask进行后台开发,前 ...