python基础 Day8
python Day8
文件操作的识
利用python代码写一个脚本操作文件的过程
文件的路径:path
打开方式:读,写,追加,读写,写读
编码方式:utf-8,gbk,gb2312
简单文件读取(文件存储时与文件打开时编码本运用必须一致)
f1=open("111.txt",encoding="utf-8",mode="r")
content=f1.read()
print(content)
f1.close()
#encoding不写的话默认操作系统方向的编码,通常window是gbk,mac和linux都是utf-8
#这里txt文件写入的编码格式是utf-8所以编码的格式需要写utf-8,如果是其他编码类型将会报错
- 文件操作的三部曲:
- 打开文件
- 对文件句柄进行相应的操作
- 关闭文件
- 文件操作的三部曲:
文件的操作读
读里面的"r"模式的使用
#文件读取的全读模式
f1=open("111.txt",encoding="utf-8",mode="r")
content=f1.read()
print(content)
##结果:详细内容请查看 www.tiebai.comcom
#文件读取的按字符模式
f1=open("111.txt",encoding="utf-8",mode="r")
content=f1.read(4)#里面的数字则是从第几个数字开始
print(content)
##结果:详细内容
#文件读取的按行读取
f1=open("111.txt",encoding="utf-8",mode="r")
content=f1.readline()#里面的数字则是从第几个数字开始
print(content)
##结果:详细内容
#文件读取的将所有行全部读取,并以列表的形式返回
f1=open("111.txt",encoding="utf-8",mode="r")
content=f1.readlines()#里面的数字则是从第几个数字开始
print(content)
##结果:['详细内容请查看\n', 'www.tiebai.com']
读里面的"rb"模式的使用(常用于视频,图片等非文本数据
image1=open("1595835526701.png",mode="rb")
image1=image1.read()
print(image1)
###结果 b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x039\x00\x00\x02\x90\x08\x06\x00\x00\x00\xbcv\xb4\x8b\x00\x00 \x00IDATx\x9c\xec\xbd\xe9r$I\x96\xa5\xf7\xe9f\x8b/\x00\x02\x11\x99Y5\xd5\xd5\xc3i\x99~\x14>\x0b\x1f\x85/\xc8\x9fM
文件的操作写的
写里面的"w"模式的使用
#写文件,如果文件不存在就会创建文件,进行写入,如果文件春在就会清空文件在进行写入。
image1=open("爱萝莉",mode="w")
print(image1.write("fdsf"))
f.close()
写里面的"wb"模式的使用
#文件操作的字节模式进行写入
image1=open("1595835526701.png",mode="rb")
content=image1.read()
imag2=open("照片.png",mode="wb")
imag2.write(content)
f.close()
文件操作的追加
文件追加里面的"a"的使用
#有文件,在原文件的最后面追加内容,没有文件创建文件追加内容
f1=open("文件追加",mode="a")
f1.write("DSdadasdd")
f1.close()
文件的其他操作模式
文件读写模式中的"r+"的使用
#先读后写,写入的位置与光标的位置有关
f=open("其他模式",encoding="utf-8",mode="r+")
content=f.read()
print(content)
f.write("fjsfdsg")
f.close()
打开文件的另一种方式
优点1:不用关闭文件的句柄
with open("其他模式",encoding="utf-8",mode="r") as f:
print(f.read())优点2:可以同时打开多个文件进行处理
#flush强制刷新
with open("dsf.txt",encoding="utf-8") as f,open("爱萝莉",encoding="utf-8") as f1:
print(f.read(),f1.read())
文件的修改步骤
- 以读的模式打开原文件
- 以写的模式创建一个新文件
- 将原文件的内容读出来修改成新内容,写入新文件
- 将原文件删除
- 将新文件重命名成原文件
import os
#将文件中zhuxiayu部分修改成fengchaoSB
##以读的形式打开原文件,以写的形式创建新文件
with open("自述.txt",encoding="utf-8") as f1,\
open("自述1.txt",encoding="utf-8",mode="w") as f2:
#将原文件的内容读取出来并进行修改,写入新文件
old_content=f1.read()
new_content=old_content.replace("zhuxiayu","fengchaoSB")
f2.write(new_content)
os.remove("自述.txt")
#对新文件进行重新命名
os.rename("自述1.txt","自述.txt")- 以循环的形式进行修改升级版本
import os
#将文件中zhuxiayu部分修改成fengchaoSB
##以读的形式打开原文件,以写的形式创建新文件
with open("自述.txt",encoding="utf-8") as f1,\
open("自述1.txt",encoding="utf-8",mode="w") as f2:
#以循环的模式以此写入
for line in f1:
new_content=line.replace("fengchaoSB","zhuxiayu")
f2.write(new_content)
os.remove("自述.txt")
#对新文件进行重新命名
os.rename("自述1.txt","自述.txt")
#使用这样方法关于写入清空的问题
#清空是关闭文件句柄,在次以w的形式打开此文件时候才会进行清空,所以上门一直通过循环进行写入是不会清空上一行的文件信息
作业
用户输入一个数字,判断一个数字是否为一个水仙花数,水仙花数是一个三位数,三位数的每一位三次方的和还等于这个数,那么这个数就是一个水仙花数
#eg:1^3+5^3+3^3=153
number=input("please input number:")
if number.isdecimal():
if len(number)==3:
x1=int(number[0])
x2=int(number[1])
x3=int(number[2])
if x1**3+x2**3+x3**3==int(number):
print("其为水仙花数")
else:
print("不是水仙花数")
else:
print("数字不正确")
else:
print("请输入三位数合法数字")将list=["周大苏打","周对手的防守","马虎他","周星星"]中首字母是周字的删除
list=["周大苏打","周对手的防守","马虎他","周星星"]
#这里有坑,因为在列表的删除过程中,删除一个元素其他会前移,会出现问题,所以采用倒叙删除
for i in range(len(list)-1,-1,-1):
if list[i][0]=="周":
list.pop(i)
print(list)车牌分块区分,现给出车牌,根据车牌的信息,分析的各省车牌持有量
cars=["鲁A2444","鲁B1233","京B8989M","黑C49678","黑C46555","沪B25041"]
locals={"沪":"上海","黑":"黑龙江","鲁":"山东","鄂":"湖北","湘":"湖南","京":"北京"}
#车牌分块区分,现给出车牌,根据车牌的信息,分析的各省车牌持有量
countlist={}
for i in cars:
if locals[i[0]] not in countlist:
countlist[locals[i[0]]]=1
else:
countlist[locals[i[0]]]=countlist[locals[i[0]]]+1
print(countlist)#升级版
countlist={}
for i in car:
countlist[locals[i[0]]]=countlist.get(locals[i[0]],0)+1
print(countlist)通过文件形式将txt格式的商品价格,商品数量,商品名字以列表嵌套字符串的形式表现
dic={}
list1=[]
with open ("a.txt",encoding="utf-8",mode="r") as f1:
for line in f1:
line=line.strip("\n").split(" ")
dic["name"]=line[0]
dic["price"] = line[1]
dic["count"] = line[2]
list1.append(dic)
print(list1)
python基础 Day8的更多相关文章
- Python基础Day8
一.内容回顾 列表的存储:列表里的元素存储的是值的内存地址,就算通过copy,复制后容器里的值也是指向同一个内存地址(跟驻留机制有关) l1 = [1,2,3, l2 = l1.copy() 浅cop ...
- python笔记 - day8
python笔记 - day8 参考: http://www.cnblogs.com/wupeiqi/p/4766801.html http://www.cnblogs.com/wupeiqi/art ...
- python之最强王者(2)——python基础语法
背景介绍:由于本人一直做java开发,也是从txt开始写hello,world,使用javac命令编译,一直到使用myeclipse,其中的道理和辛酸都懂(请容许我擦干眼角的泪水),所以对于pytho ...
- Python开发【第二篇】:Python基础知识
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...
- Python小白的发展之路之Python基础(一)
Python基础部分1: 1.Python简介 2.Python 2 or 3,两者的主要区别 3.Python解释器 4.安装Python 5.第一个Python程序 Hello World 6.P ...
- Python之路3【第一篇】Python基础
本节内容 Python简介 Python安装 第一个Python程序 编程语言的分类 Python简介 1.Python的由来 python的创始人为吉多·范罗苏姆(Guido van Rossum) ...
- 进击的Python【第三章】:Python基础(三)
Python基础(三) 本章内容 集合的概念与操作 文件的操作 函数的特点与用法 参数与局部变量 return返回值的概念 递归的基本含义 函数式编程介绍 高阶函数的概念 一.集合的概念与操作 集合( ...
- 进击的Python【第二章】:Python基础(二)
Python基础(二) 本章内容 数据类型 数据运算 列表与元组的基本操作 字典的基本操作 字符编码与转码 模块初探 练习:购物车程序 一.数据类型 Python有五个标准的数据类型: Numbers ...
- Python之路【第一篇】python基础
一.python开发 1.开发: 1)高级语言:python .Java .PHP. C# Go ruby c++ ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...
随机推荐
- 小书MybatisPlus第8篇-逻辑删除实现及API细节精讲
本文为Mybatis Plus系列文章的第8篇,前7篇访问地址如下: 小书MybatisPlus第1篇-整合SpringBoot快速开始增删改查 小书MybatisPlus第2篇-条件构造器的应用及总 ...
- Java基础知识_内存
前述:利用一段较为充足暑假时间,对以前的Java学习进行一个系统性的回顾,对于部分知识点进行记录和积累. Java中的内存 一 Java中的内存划分: Java中内存主要划分为五部分 栈(Stack) ...
- 通过C语言获取MAC地址(转)
原文:http://blog.chinaunix.net/uid-25885064-id-3125167.html #include <sys/ioctl.h>#include <n ...
- 关于docker--详解安装,常规操作,导入导出等(2017-3-29)
测试环境 :CentOS 7.1 64位 目的:展示docker的常规使用(安装,常规操作,导入导出等) 其他:关于原理等请参考文章后面的延伸阅读,本文不做深入探讨,且方法不唯一 0x01 关于安装d ...
- 感性认识JWT
常见的认证机制 今天我么聊一聊JWT. 关于JWT,相信很多人都已经看过用过,他是基于json数据结构的认证规范,简单的说就是验证用户登没登陆的玩意.这时候你可能回想,哎哟,不是又那个session么 ...
- Spring集成CXF发布WebService并在客户端调用
Spring集成CXF发布WebService 1.导入jar包 因为官方下载的包里面有其他版本的sprring包,全导入会产生版本冲突,所以去掉spring的部分,然后在项目根目录下新建了一个CXF ...
- java 心跳机制
心跳机制:就是每隔几分钟发送一个固定信息给服务端,服务端收到后回复一个固定信息如果服务端几分钟内没有收到客户端信息则视客户端断开. 心跳包 心跳包就是在客户端和服务器间定时通知对方自己状态的一个自己定 ...
- Java Web(5)-Servlet详解(下)
一.HttpServletRequest 类 1. HttpServletRequest 类作用? 每次只要有请求进入 Tomcat 服务器,Tomcat 服务器就会把请求过来的 HTTP 协议信息解 ...
- 小甲鱼零基础汇编语言学习笔记第二章之寄存器(CPU工作原理,CPU内部通讯)
这一章主要介绍了CPU中的重要器件——寄存器,整个系列通篇是以8086CPU作为探讨对象,其它更高级的CPU都是在此基础之上进行的升级. 1.一个典型的CPU是由运算器.控制器.寄存器等器件组成, ...
- CF802C Heidi and Library hard 费用流 区间k覆盖问题
LINK:Heidi and Library 先说一下简单版本的 就是权值都为1. 一直无脑加书 然后发现会引起冲突,可以发现此时需要扔掉一本书. 扔掉的话 可以考虑扔掉哪一本是最优的 可以发现扔掉n ...