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',' ...
随机推荐
- windows I/O设备
当外部设备连接到windows后,设备所连接到的集线器驱动程序将为设备分配硬件ID,然后Windows 使用硬件 Id 查找设备与包含设备驱动程序的驱动程序包之间最近的匹配项. 如果查找到,设备就可以 ...
- WiFi模块Demo(新手教程)图文详解模块使用教程
本文出自APICloud官方论坛,感谢论坛版主 Mr.ZhouHeng 的分享. 第一步我们需要在开发控制台创建一个Native App应用以及添模块的准备工作: 按照下图步骤 输入完点创建完成之后 ...
- cogs 1829. [Tyvj 1728]普通平衡树 权值线段树
1829. [Tyvj 1728]普通平衡树 ★★★ 输入文件:phs.in 输出文件:phs.out 简单对比时间限制:1 s 内存限制:1000 MB [题目描述] 您需要写一种数 ...
- 区间dp - 全部按下一列石头
There is one last gate between the hero and the dragon. But opening the gate isn't an easy task. The ...
- FreeRTOS低功耗模式
在系统或电源复位以后,微控制器处于运行状态.当CPU不需继续运行时,可以利用多种低功耗模式来节省功耗,例如等待某个外部事件时,用户需要根据最低电源消耗,最快速启动时间和可用的唤醒源等条件,选定一个最佳 ...
- 毒瘤养成记1: 如何卡hash
各位毒瘤大家好, 最近模拟赛考了一道trie+主席树好题, 但大家都用hash水过了这道题(包括我), 为了测试一下新搭建的HEAT OJ的hack功能, 我将继续扮演毒瘤的角色, 用毒瘤的艺术形象努 ...
- Qt Installer Framework翻译(5-4)
自定义安装程序 您可以使用脚本通过以下方式来自定义安装程序: > 添加Qt Installer Framework操作,该操作由脚本提供,并由安装程序执行. > 添加新页面,该页面由您在p ...
- 虚拟环境vitualenv的使用
在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题: 亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难. 此时,我们需要对于不同的工程使用 ...
- CTF--HTTP服务--命令执行
开门见山 1. 扫描靶机ip,发现PCS 172.18.5.1 2. 用nmap扫描靶机开放服务和服务版本 3. 再扫描靶机全部信息 4. 用nikto工具扫描http服务的敏感信息 5. 打开浏览器 ...
- Leetcode 题目整理-1
1. Two Sum Given an array of integers, return indices of the two numbers such that they add up to a ...