二次编码

密码本:

ascii -- 没有中文 英文1字节

gbk -- 英文 8b(位) 1B(字节) 中文 16b 2B

unicode -- 英文32b 4B 中文32b 4B

utf-8 -- 英文8b 1B 欧洲16b 2B 亚洲24b 3B

name="你好"
s1=name.encode("utf-8")#编码
s2=name.encode("gbk")#编码
s2=s1.decode("utf-8")#用什么编码 就用什么解码
3.14 文件操作
读、覆盖写、追加(r、w、a)

读操作(r):

f=open("哈哈",mode="r",encoding="utf-8")#open是打开:引号下填写文件路径 我这里用的是相对路径,逗号隔开,然后写操作方式 r 是读的意思, 然后写编码方式,我这里写"utf-8"
print(f.read())#读取全部,选择read()
print(f.readline())#读取一行,选择readline()
print(f.readlines())#一行一行读取,存放在列表中
f.close()#文件操作完成,然后进行关闭

解决大文件:

for i in f:
print(i)#本质上是一行行的读取

注意:文件读取在哪,光标就显示在哪

f 可写成任意变量等,它被称作:文件句柄,文件操作符,或者文件操作对象等。 open 是Python调用的操作系统(windows,linux,等)的功能,而windows的默认编码方式为gbk,linux默认编码方式为utf-8,所以你的文件用什么编码保存的,就用什么方法打开,一般都是用utf-8。 mode为打开方式:常见的有r,w,a,r+,w+,a+.rb,wb,ab,等,默认不写是r。 流程就是打开文件,产生一个文件句柄,对文件句柄进行相应操作,关闭文件。

相对路径与绝对路径

f=open("哈哈",mode="r",encoding="utf-8")#同一个文件夹下面的文件,直接写文件名就可以。
open('C:\Users\Meet')#绝对路径:从根目录下开始一直到文件名

../返回 上一层

我们在使用绝对路径的时候因为有\这样程序是不能识别的,解决方法:

open('C:\Users\Meet') #这样程序是不识别的

路径转义://

解决方法一:

open('C:\Users\Meet') #这样就成功的将\进行转义 两个\代表一个

解决方法二:

open(r'C:\Users\Meet') #这样相比上边的还要省事,在字符串的前面加个小r也是转义的意思 推荐使用这种
覆盖写操作(w):

w分为两步:1、先清空文件 2、填入文件

f=open("haha",mode="w",encoding="utf-8")
f.write("你好好")#写的内容要用引号引起来;在写文件的时候我们要养成一个写完文件就刷新的习惯. 刷新flush()

repr 显示数据原生态

f.flush()
f.close()
当使用w模式下,在打开文件的时候就会把文件所有内容清空,然后操作

注意点:如果文件不存在使用w模式会创建文件,文件存在w模式是覆盖写,在打开文件时会把文件中所有的内容清空

追加操作(a):

f=open("哈哈",mode="a",encoding="utf-8")#无论光标在什么位置,都是在文件的末尾写入
f.write("年后")#默认是是有自动换行的,需要手动加 取消换行
f.close()

r+、w+、a+(读写:先读后写 、清空写读、追加写读)

r+:先读后写

错误的操作 (坑)

f = open("萝莉小姐姐电话号","r+",encoding="utf-8")
f.write("常鑫你太美")
print(f.read())

正确的操作:

f = open("萝莉小姐姐电话号","r+",encoding="utf-8")
print(f.read())
f.write("常鑫你太美")

#w+:清空写读

f = open("萝莉小姐姐电话号","w+",encoding="utf-8")
f.write("常鑫你太美")
print(f.tell())
f.seek(15)
print(f.tell())
print(f.read())

a+:追加写读

f = open("萝莉小姐姐电话号","a+",encoding="utf-8")
f.write("常鑫你太美")
print(f.tell()) # 字节数
print(f.seek(0,0)) # 0将光标移动到文件的头部
print(f.read())

其他操作

tell #查看光标--返回的是字节数
seek #移动光标
seek(0,0)#移动到文件得头部
seek(0,1)#当前位置
seek(0,2)#移动到文件末尾
seek(3)#按照字节进行移动(按照编码集)

f.read(3)#要看当前模式如果是 r w a模式则是读取得字符 如果是r+ w+ a+ 读取得则是字节(按照编码集)

文件修改

f = open("萝莉小姐姐电话号","r",encoding="gbk")
s = f.read()
s1 = s.replace("你太美","吃煎饼")

f1 = open("萝莉小姐姐电话号","w",encoding="gbk")
f1.write(s1)

with 关键字 open("萝莉小姐姐电话号","r",encoding="gbk") as f:
文件操作的具体内容

w,a 检测有文件就操作,没文件就创建

文件修改名称

import os
os.rename("萝莉小姐姐电话号","萝莉小姐姐电话号.bak")
os.rename("萝莉小姐姐电话号.txt","萝莉小姐姐电话号")

with open("萝莉小姐姐电话号","r",encoding="gbk")as f:
pass # 缩进里操作文件
print(f.read()) # 文件及已经关闭了

python入门(六)二次编码与文件操作的更多相关文章

  1. Python 入门基础6 --字符编码、文件操作1

    今日内容: 1.字符编码 2.字符与字节 3.文件操作 一.字符编码 了解: cpu:将数据渲染给用户 内存:临时存放数据,断电消失 硬盘:永久存放数据,断电后不消失 1.1 什么是编码? 人类能够识 ...

  2. python基础——6(字符编码,文件操作)

    今日内容: 1.字符编码: 人识别的语言与机器识别的语言转化的媒介 *****     2.字符与字节: 字符占多少字节,字符串转化 ***     3.文件操作: 操作硬盘中的一块区域:读写操作  ...

  3. 简学Python第二章__巧学数据结构文件操作

    #cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...

  4. Python开发(三):字符编码,文件操作,函数

    一:三级菜单 If len(choice) == continue # 判断输入的是否为空,为空就跳出这次循环进行下次循环, exit(“bye”) :退出程序显示,bye 二:编码 最早的编码是as ...

  5. Python 字符编码及其文件操作

    本章节内容导航: 1.字符编码:人识别的语言与机器机器识别的语言转化的媒介. 2.字符与字节:字符占多少个字节,字符串转化 3.文件操作:操作硬盘中的一块区域:读写操作 注:浅拷贝与深拷贝 用法: d ...

  6. Python全栈开发之路 【第三篇】:Python基础之字符编码和文件操作

    本节内容 一.三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件语句: if 条件成立: val = 1 else: val = 2 改成三元运算: val = 1 if 条件成 ...

  7. Python之字符编码与文件操作

    目录 字符编码 Python2和Python3中字符串类型的差别 文件操作 文件操作的方式 文件内光标的移动 文件修改 字符编码 什么是字符编码? ''' 字符编码就是制定的一个将人类的语言的字符与二 ...

  8. python自动化开发-[第三天]-编码,函数,文件操作

    今日概要 - 编码详解 - 文件操作 - 初识函数 一.字符编码 1.代码执行过程 代码-->解释器翻译-->机器码-->执行 2.ASCII ASCII:一个Bytes代表一个字符 ...

  9. Python全栈-day6-day7-字符编码和文件处理

    一.字符编码 1.编码基础 定义:人在使用计算机时,使用的是人类能够读懂的字符,使用者必须通过一张字符和数字间的相对应关系表实现人机交互,这一系列标准称为字符编码 Python应用中解决核心字符串乱码 ...

随机推荐

  1. Atlassian In Action-Jira之二次开发(五)

    到现在已经写到了第五章节,实际上离Jira的官方系统已经越来越远,本章节的内容基本上已经完全脱离了Jira这个系统本身,而是依赖Jira的API接口和数据库进行开发了.主要包含如下几个功能: 人员任务 ...

  2. 原创:用node.js搭建本地服务模拟接口访问实现数据模拟

    前端开发中,数据模拟是必要的,这样就能等后台接口写完,我们直接把接口请求的url地址从本地数据模拟url换成后台真实地址就完成项目了.传参之类的都不用动. 之前网上找了很多类似于mock等感觉都不太实 ...

  3. PID算法 旋转倒立摆与平衡车的区别。此贴后边会更新。

    我做PID算法的背景和经历:本人之前电子信息科学与技术专业,对控制方向颇感兴趣,刚上大学时听到实验室老师说PID算法,那年在暑假集训准备全国电子设计竞赛,我正在练习做一个以前专科的题目,帆板角度控制系 ...

  4. memcached.c 源码分析

    上文分析了memcached的autoconf过程以及configure, make过程,可以看到,memcached可执行文件是由memcached-memcached.o以及其他文件连接后编译出来 ...

  5. Liunx C 编程之多线程与Socket

    多线程 pthread.h是linux特有的头文件,POSIX线程(POSIX threads),简称Pthreads,是线程的POSIX标准.该标准定义了创建和操纵线程的一整套API.在类Unix操 ...

  6. Hadoop学习(8)-scala环境配置及简单使用

    学习scala的原因主要是因为以后要学习spark. scala是运行在java虚拟机上的,它是一种面向对象和函数式编程结合的语言,并兼容java程序 相对于java更简单 安装scala前提你要保证 ...

  7. JavaWeb——JSP表达式语言(EL)

    1.JSP表达式语言(EL)用于在jsp从访问存储在JavaBean中的数据,例如 User ID: ${user.userId}<br /> 这里的${user.userId}就是JSP ...

  8. JavaWeb——Servlet开发3

    1.使用初始化参数配置应用程序 初始化参数的方式有两种 在Web.xml文件中使用<context-param>标签声明上下文初始化参数 <context-param> < ...

  9. 轻量级移动端类库,大小20多k,支持多指触摸。

    /* * 移动端 公共类库 * 作者:hqs */ (function(global, factory) { // cmd commonjs if (typeof module === "o ...

  10. zuul 路由网关 微服务架构系统中

    在微服务架构中,基本包含以下常见的组件.服务注册与发现.服务消费.负载均衡.断路器.只能路由.配置管理等.一个简单的微服务架构系统如下 一.Zuul简介 Zuul的主要功能是路由转发和过滤器.路由功能 ...