20200105--python学习第七天
今日内容
深浅拷贝
文件操作
内容回顾及补充
1.内容回顾
计算机基础
编码
语法
if/while/for
数据类型
type/id/range
运算符
2.面试题
a.公司线上的系统用的是什么?
b.py2与py3的区别
c.运算符
d.is与==d的区别
5.列举python的数据类型中都有哪些方法?
今日内容
1.深浅拷贝
浅拷贝copy.copy():只拷贝第一层。
深拷贝copy.deepcopy():拷贝嵌套层次中的所有可变类型。
a.针对int+str+bool,都数据不可变的数据类型,理论是都是开辟一个新的存储空间,但由于小数据池的原因,深浅拷贝都使用同一个内存地址,请注意;
b.针对list+set+dic
深拷贝只有在嵌套中存有可变类型的情况下发挥作用。
浅拷贝:只复制第一层,元素的值指向源地址。
深拷贝:完全拷贝。
c.特殊情况
对于元组是不可变数据类型,在没有嵌套的情况下,深浅拷贝都不会重新开辟新的内存地址;但是如果里面存在由可变元素,就是重新开辟新的内存地址。

2.文件操作
a.打开
r:只能读
w:只能写,再写之前会先清空文件,如果文件不存在,会直接创建,如果存在就清空
a:只能追加,即只能写,如果文件不存在,也会创建
注意:r模式下:如果文件不存在就报错;w默认下:如果文件不存就创建,存在就先清空;a模式下,如果文件不存在就创建,不能读取文件内容;
r+:可读可写
读:默认从0的光标位置开始读,也可以通过seek调整光标的位置(seek是按字节计算的);
写:从光标所在的位置开始写,也可以通过seek调整光标的位置(注意:当光标后边还有内容,写会覆盖光标后边的内容)
w+:先写后读
读:默认光标永远在写的后边或是0(还没有开始写东西),也可以通过seek调整光标的位置;
写:先清空文件,然后开始写内容
a+:可追加可读
读:默认光标永远在文件内容的最后边,也可以通过seek调整光标的位置,然后再去读取;
写:永远写在最后边,不管光标怎么移动
b.操作
读:read()/read(2)【里面的数据表示的是字符】/readlines()
写:write
# ###################################### 读操作
# file_object = open('log.txt',mode='r',encoding='utf-8') # 读取文件的所有内容到内存
# data = file_object.read() # 从当前光标所在的位置向后读取文件两个字符
# data = file_object.read(2) # 读取文件的所有内容到内存,并按照每一行进行分割到列表中。
# data_list = file_object.readlines()
# print(data_list) # 如果以后读取一个特别大的文件 (**********)
# for line in file_object:
# line = line.strip()
# print(line) # file_object.close()
c.关闭 close
3.关于seek()使用
seek(n)光标移动到n位置,注意:移动单位是byte即字节,因此如果是utf-8的中文部分要是3的倍数
通常我们使用seek都是移动到开头或者结尾
移动到开头:seek(0,0) 可以看做成seek(0)
seek(6)这种如果是单数并且不是0的就是按照字节来移动光标
移动到结尾:seek(0,2)
seek的第二个参数表示的是从哪个位置进行偏移。默认是0,表示开头;1表示当前位置;2表示结尾。
4.关于tell()使用
使用tell()可以帮我们获取当前光标在什么字节位置
5.关于truncate()使用
删除光标后边的所有内容
如果想做截断操作,就需要先移动光标,将光标移动到你想要截断的位置,然后再进行截断。
关于truncate(n),如果给出了n,就从n开始截断;如果不给指定n,就从当前位置开始截断,后面的内容将被删除。
练习:
file = open(file = 'test.txt',mode='w',encoding='utf-8')
file.write("股票型基金")#写入"股票型基金"字符
file.seek(12)#光标移动到第12/3个字节位置,"基"字后面
file.truncate()#删掉光标即"基"字后面的所有内容
file.close() file = open(file = 'test.txt',mode='r+',encoding='utf-8')
content=file.read(3)#读取3个字符
print(content) #本次将打印出"股票型"
file.seek(3) #光标移动到第3/3个字节位置,"股"字后面
print(file.tell())#本次打印光标在3个字节位置
file.truncate()#将"股"字后面的内容全部删掉
file.flush() content2=file.read() #当前光标在"股"字后边,后边没有什么任容
print(content2) #本次打印为空 file.seek(0) #将光标移动到文件头部
content3=file.read() #读取文件中的所有内容,即"股"字
print(content3) #本次打印一个"股"字
file.close() # 输出结果:
# 股票型
# 3
#
# 股
20200105--python学习第七天的更多相关文章
- python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍
目录 python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 2.元祖变量的定义 3.元祖变量的常用操作. 4.元祖的遍历 5.元祖的应用场景 p ...
- Python学习第七课
Python学习第七课 'Alex' "Alex"print('hello'*5) #重复输出字符串 print('hellowold'[2:]) #类似于切片操作:会取出 llo ...
- Python学习笔记七-错误和异常
程序员总是和各种错误打交道,学习如何识别并正确的处理程序错误是很有必要的. 7.1错误和异常 1.错误 从软件方面来看,错误分为语法错误和逻辑错误两种.这两种错误都将导致程序无法正常进行下去,当Pyt ...
- python学习第七天 -- dict 和set
今天主要学习关于python 的dict(全称dictionary)和set.dict的用法跟javascript 中map表类似,key + value结构语言.而set,准确来说,只是key的集合 ...
- Python学习笔记七
面向对象编程 面向对象的特性如下: 类:具有相同属性和方法的一类事物,成为类. 对象:类的实例化后的结果,一个类可以实例化多个对象,每个对象也可以不同的属性. 封装:在类中对数据的赋值,类里面包含着类 ...
- Python学习(七)面向对象 ——类和实例
Python 面向对象 —— 类和实例 类 虽然 Python 是解释性语言,但是它是面向对象的,能够进行对象编程.至于何为面向对象,在此就不详说了.面向对象程序设计本身就很值得深入学习,如要了解,请 ...
- python学习笔记七 初识socket(进阶篇)
socket socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. sock ...
- python学习笔记七--数据操作符
一.Python表达式操作符及程序:
- python学习笔记(七)、异常
在实际开发中,往往不会出现一个系统编写下来,没有出现任何一个bug.为处理这种会出现错误的地方,如除数为零的除法,python提供了非常强大的机制————异常处理机制. 1 异常 python使用异常 ...
- python学习第七篇——字典访问键与值
此程序的目的在于,正确而简单的访问字典的键与值 favorite_languages={ 'jen':['python','c'], 'sarah':['c'], 'edward':['ruby',' ...
随机推荐
- 2019版Idea如何激活
1.下载jar包 链接: https://pan.baidu.com/s/1w4B4_hmiiueNDJMjYKaFyQ 提取码: fkpx 2.修改·vmoptions 1.Help" - ...
- scalikeJDBC的restapi
ScalikeJDBC是一个Scala的JDBC框架,适用于绝大多数RDBMS数据库(关系数据库) 重要的是,在这几天简单的使用了一下,用sqlserver来测试了一下用mysql或者h2的scali ...
- 幽灵java进程引起的: FATAL ERROR in native method
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT( ...
- JVM中的GC算法,JVM参数,垃圾收集器分类
一.在JVM中什么是垃圾?如何判断一个对象是否可被回收?哪些对象可以作为GC Roots的根 垃圾就是在内存中已经不再被使用到的空间就是垃圾. 1.引用计数法: 内部使用一个计数器,当有对象被引用+1 ...
- 图像处理基础知识:EMVA1288标准之“非均匀性”的理解
EMVA1288标准之“非均匀性”的理解 目录 1. 什么是图像的非均匀性?有标准吗? 2. EMVA1288的非均匀性内容. 3. 总结与理解 正文 1. 什么是图像的非均匀性?有标准吗?简单来说, ...
- 机器学习-Tensorflow之Tensor和Dataset学习
好了,咱们今天终于进入了现阶段机器学习领域内最流行的一个框架啦——TensorFlow.对的,这款由谷歌开发的机器学习框架非常的简单易用并且得到了几乎所有主流的认可,谷歌为了推广它的这个框架甚至单独开 ...
- Math.Atan2 方法
返回正切值为两个指定数字的商的角度. public static double Atan2 ( double y, double x ) 参数 y 点的 y 坐标. x 点的 x 坐标. 返回值 角 ...
- Python学习,第六课 - 集合
Python中集合的相关操作 集合是一个无序的,不重复的数据组合 它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 list_1 =set ...
- Object类、常用API_2
主要内容 Object类 Date类 DateFormat类 Calendar类 System类 StringBuilder类 包装类 学习目标 -[ ] 能够说出Object类的特点 -[ ] 能够 ...
- 优雅写Java之三(IO与文本解析)
一.资源相关 二.路径与文件 读文件: String fileName = "str.txt"; Files.lines(Paths.get(fileName), Standard ...