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的天职,索性就网上各种 ...
随机推荐
- nginx 学习(一)
今天不会nginx被怼了一顿.我必然不能忍,所以就赶忙来补充一下nginx知识!! nginx简介 nginx是一款高性能的http服务器,目前国内包括BAT在内的众多互联网企业均采用其作为反向代理服 ...
- Python第一章(北理国家精品课 嵩天等)
1.1程序设计基本方法 IPO 分析问题,划分边界,设计算法: 编写程序,调试测试,升级维护. 1.2Python开发环境配置 1.3实例1:温度转换 1.4Python程序语法元素分析 缩进,#添加 ...
- Shell 字符串处理
字符串处理方式 计算字符串长度 获取子串在字符串中的索引位置 计算子串长度 抽取(截取)字串 1.计算字符串长度,有两种方式 $ ${#string} $ expr length "$str ...
- python实际练习1——简单购物车
要求实现 启动程序后,让用户输入工资,然后打印商品列表 允许用户根据商品编号购买商品 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒 可随时退出,退出时,打印已购买商品和余额 自己写的代码是 ...
- WPF popup自动关闭
var tileMore = new Tile { Height = , Width = , Background = , , )), Title = "更多...", }; ti ...
- c语言实现两个单链表的交叉合并
#include<stdio.h> #include<stdlib.h> #include<iostream> using namespace std; struc ...
- Arm11-mini6410入坑
Mini6410 学习Stm32的时候原子哥的资料真全啊,而且原子哥在他论坛也解答问题.然而现在学习ARM买了一套友善之臂的开发板,官方的资料只能刚好入门而已,其实入门都算不上.看了一下,网上的资料很 ...
- 测试计划的编写6要素(5W1H)
Why --为什么要进行这些测试 WHat--测试哪些内容 When--测试不同阶段的起止时间 WHere--相应文档,缺陷的存放位置,测试环境 Who--项目有关人员组成 How--如何去做,使用哪 ...
- Linux安装jdk-8u161-linux-x64
最基本的操作,有一些细节需要处理,这次主要列出来步骤,其实步骤在网上一搜就有,这里只是根据个人的操作进行一些整合和注意事项的提醒罢了. 1.卸载原先的java jdk 这一步的目的是,很多Linux版 ...
- keras图像风格迁移
风格迁移: 在内容上尽量与基准图像保持一致,在风格上尽量与风格图像保持一致. 1. 使用预训练的VGG19网络提取特征 2. 损失函数之一是"内容损失"(content loss) ...