day03 文件操作
目录
1.文件操作实例
2.文件常用操作
3.with模块操作文件
常用实例,把文件里面的内容读出来做成字典的形式在做成字列表展示。
1.精简版。
lst = []
f = open("file01", mode="r", encoding="utf-8")
for line in f:
line1 = line.strip().split(",")
dic = {}
dic["id"] = line1[0]
dic["name"] = line1[1]
dic["price"] = line1[2]
lst.append(dic)
print(lst)
2.升级版。
f = open("file01", mode="r", encoding="utf-8")
title_str = f.readline().strip()
title_list = title_str.split(",")
print(title_list)
lst = []
for body in f:
body_str = body.strip().split(",")
print(body_str)
dic = {}
for i in range(len(title_list)):
dic[title_list[i]] = body_str[i]
lst.append(dic)
print(lst)
一. 文件读写追加以及修改
r:读 r+: 读写 rb: 以字节的形式读。一般用来操作图片视屏音乐等非文字信息。
1.读
f = open("file01", mode="r",encoding="utf-8")
content = f.read()
print(content)
close() ps:读文件but这种方式是读所有 如果文件太大会内存溢出
f = open("file01", mode="r",encoding="utf-8")
for line in f:
print(line) ps:一行一行读取
f = open("file01", mode="r",encoding="utf-8")
for line in f:
input("按回车往下浏览:")
print(line) ps:通过函数input()阻塞 让用户按下回车键继续往下浏览
2.读写
待补充....
3.rb
f = open("file01", mode="rb")
content = f.read()
print(content)
ps:只要有四个方法
read() 读
readline()读一行
readlines() 全部读并且以列表的形式呈现
readable() 判断是否有读的权限
w:写 w+:写读 wb:同上
注意:如果没有⽂文件. 则会创建⽂文件, 如果⽂文件存在. 则将原件中原来的内容删除, 再 写入新内容 。
1.w写
f = open("file02.txt", mode="w", encoding="utf-8")
f.write("Today is monday")
f.flush()
f.close() ps:写的时候最好用flush刷新。 2.wb模式下可以不指定打开⽂文件的编码. 但是在写⽂文件的时候必须将字符串串转化成utf-8的 bytes数据 。
f = open("file02.txt", mode="wb")
f.write("金毛狮王".encode("utf-8"))
f.flush()
f.close()
a:在文件的末尾追加内容 a+ 追加 ab:同上,不管在什么位置都是追加
f = open("file02.txt", mode="a",encoding="utf-8")
f.write("西游记")
f.flush()
f.close()
修改:修改文件实际上是把原来的删除了改名覆盖原来的那一份。
文件复制
f = open("file02.txt", mode="r",encoding="utf-8")
f2 = open("file03.txt",mode="w", encoding="utf-8")
for i in f:
f2.write(i)
文件修改
f = open("file02.txt", mode="r",encoding="utf-8")
f1 = open("file022.txt", mode="w",encoding="utf-8")
for i in f:
i = i.replace("西游记","西游记后传")
f1.write(i)
f.close()
f1.flush()
f1.close()
import os
os.remove("file02.txt")
os.rename("file022.txt","file02.txt")
文件操作常见的函数
seek()移动光标的位置 0:开头 1:当前 2.结尾 ps:移动是以bytes为单位,如果是utf8字符集需要乘以三
tell()告诉当前光标的位置 中文算3个bytes 标点数字算一个
f = open("file02.txt", mode="r+",encoding="utf-8")
content = f.read()
print(f.tell())
f.seek(9)
print(f.tell())
truncate截断
f = open("file02.txt", mode="r+",encoding="utf-8")
content = f.seek(10)
print(f.truncate())
print(content)
二. with模块实现文件的操作
import os
with open("file03.txt", mode="r",encoding="utf-8") as f1,\
open("file033.txt",mode="w", encoding="utf-8") as f2:
for line in f1:
f2.write(line)
ps: with的操作不用写close() 会自己帮你检查。
day03 文件操作的更多相关文章
- Python基础【day03】:文件操作(六)
一.概述 我们工作中需要经常操作文件,下面就讲讲如何用Python操作文件 1.文件操作的流程: 打开文件,得到文件句柄赋值给一个变量 通过文件句柄,对文件进行操作 关闭文件 二.入门 1.语法 op ...
- day03 set集合,文件操作,字符编码以及函数式编程
嗯哼,第三天了 我们来get 下新技能,集合,个人认为集合就是用来list 比较的,就是把list 转换为set 然后做一些列表的比较啊求差值啊什么的. 先看怎么生成集合: list_s = [1,3 ...
- day03深浅拷贝、文件操作和函数初识
一.赋值.浅拷贝与深拷贝 直接赋值:其实就是对象的引用(别名). 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象. 深拷贝(deepcopy): copy 模块的 deepcopy 方法, ...
- Day05 (黑客成长日记) 文件操作系列
文件操作: 1.以什么编码方式输出,就以什么编码方式打开 f = open('d:\文件操作.txt',mode='r',encoding='GB2312') G = f.read() print(G ...
- day03_雷神_文件操作
day03 上周回顾_问题总结: 地址值: li = [] name = ['name','price','count'] dic = {} #如果这里定义空列表,后边的dic[name[i]] = ...
- Python基础-week03 集合 , 文件操作 和 函数详解
一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...
- day08——文件操作
day08 文件操作: open() :打开 f (文件句柄)= open("文件的路径(文件放的位置)",mode="操作文件的模式",encoding=&q ...
- 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档
.net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...
- 野路子出身PowerShell 文件操作实用功能
本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...
随机推荐
- 【转】QT 添加外部库文件
转自:Qt 添加外部库文件 LIBS += D:\Code\Opengltest\OpenGL32.Lib D:\Code\Opengltest\GlU32.Lib # 直接加绝对路径 LIBS += ...
- 设计模式二之观察者模式(Subject-Observer)
观察者模式定义了一系列对象之间的一对多关系,当一个主题对象改变状态,其他所有的依赖者都会收到通知. 好了,你可能会觉得上面的描述略微复杂,较难理解,那么现在我们将用一个简单的例子去讲解这个模式. 我们 ...
- poj1947(树形背包)
题目链接:http://poj.org/problem?id=1947 Rebuilding Roads Time Limit: 1000MS Memory Limit: 30000K Total ...
- Javascript设计模式记录
prototype与面向对象取舍 使用prototype原型继承和使用面向对象,都可以实现闭包的效果.那么这两个的选择点,就是方法会不会产生多个实例. 例如,我们需要做一个闭包数组,并给他提供一个添加 ...
- [python3.6+opencv] 02 imwrite-打开图像后保存退出还是不保存退出的问题
加载一个灰度图,显示图片,按下’s’键保存后退出, 或者按下 ESC 键退出不保存 # -*- coding: utf-8 -*- import numpy as np import cv2 as c ...
- Action访问Servlet API的三种方法
一.为什么要访问Servlet API ? Struts2的Action并未与Servlet API进行耦合,这是Struts2 的一个改良,从而方便了单独对Action进行测试.但是对于Web控制器 ...
- random模块用法
最近生病,学习进度少许拖延,, import random # 随机取0~1之间的小数 print(random.random()) # 随机取2数之间的整数 print(random.randint ...
- oracle的PDB启动
/*以管理员身份登录*/sqlplus / as sysdba /*查看CDB的状态*/select status from v$instance; /*开启startup,默认是open*/star ...
- JavaScript Node节点笔记
1. 节点及其类型: 1). 元素节点 2). 属性节点: 元素的属性, 可以直接通过属性的方式来操作. 3). 文本节点: 是元素节点的子节点, 其内容为文本. 2. 在 html 文档的什么位置编 ...
- 剑指Offer 63. 数据流中的中位数(其他)
题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值.如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值.我们 ...