python学习之老男孩python全栈第九期_day008知识点总结
'''
'如何打开一个文件
模特主妇护士老师.txt
1. 文件路径:f:\模特主妇护士老师.txt
2. 操作方式:只读:r ,rb ,只写: w, wb ,追加: a , ab,读写:r+ , r+b,写读 :w+ , w+b ......
3. 编码方式
以什么编码方式储存的文件,就以什么编码打开进行操作
'''
绝对路径: 从根目录开始
f = open('f:\模特主妇护士老师.txt', mode = 'r', encoding = 'utf-8')
content = f.read()
print(content)
f.close()
相对路径: 从当前目录开始
只读 r
bytes --> str
f = open('模特主妇护士老师.txt', mode = 'r', encoding = 'utf-8')
content = f.read()
print(content,type(content))
f.close()
f = open('模特主妇护士老师.txt', mode = 'rb')
content = f.read()
print(content)
f.close()
对于写 w ,没有此文件就会创建文件
f = open('log', mode = 'w', encoding = 'utf-8')
f.write('骑兵步兵')
f.close()
先将源文件的内容全部清除,再进行写操作
f = open('log', mode = 'w', encoding = 'utf-8')
f.write('回房间ask东方航空')
f.close()
f = open('log', mode = 'wb')
f.write('回房间ask东方航空'.encode('utf-8'))
f.close()
追加
f = open('log', mode = 'wb')
f.write('回房间ask东方航空'.encode('utf-8'))
f.close()
追加
f = open('log',mode = 'a', encoding = 'utf-8')
f.write('kidd')
f.close()
f = open('log',mode = 'a+', encoding = 'utf-8')
f.write('kidd')
f.seek(0) # + 可以用seek(),寻找光标
print(f.read())
f.close()
f = open('log',mode = 'ab')
f.write('KID'.encode('utf-8'))
f.close()
读写
f = open('log', mode = 'r+', encoding = 'utf-8')
print(f.read())
f.write('尹宁')
print(f.read())
f.close()
写读
r+ 模式下 进行写读,从头开始写
f = open('log', mode = 'r+', encoding = 'utf-8')
f.write('KID')
print(f.read())
f.close()
f = open('log', mode = 'r+', encoding = 'utf-8')
f.write('KIDDDDDDDD')
print(f.read())
f.close()
读写
# 后面加 b , 就不写encoding = ''了
f = open('log', mode = 'r+b')
print(f.read())
f.write('尹宁'.encode('utf-8'))
f.close()
写读 w+
f = open('log', mode = 'w+', encoding = 'utf-8')
f.write('KID')
f.seek(0)
print(f.read())
f.close()
功能详解
最常用的就是r+
read()、seek()、
f = open('log', mode = 'r+', encoding = 'utf-8')
# content = f.read(3) # 读出前三个字符(读出来的都是字符)
f.seek(3) #移动光标是按照字节定光标的位置,一个中文是三个字节,故只能是3 的倍数
print(f.tell()) # 告诉你光标的位置
# content = f.read()
# print(content)
f.close()
f = open('log',mode = 'a+', encoding = 'utf-8')
f.write('kidd')
content = f.tell()
f.seek(content - 3) # 中文是一个字符(三个字节),英文是三个字符(三个字节)
print(f.read())
f.close()
f = open('log', mode = 'r+', encoding = 'utf-8')
f.tell()
f.readable() #是否可读
line = f.readline() # 一行一行的读
line = f.readlines() # 每一行当成列表中的一个元素,添加到list中(for循环)
f.truncate(4)
print(l1)
for line in f:
print(line)
f.close()
with open('log', mode = 'r+', encoding = 'utf-8') as obj:
print(obj.read()) # close() 不用写,自动关闭
with open('log', mode = 'r+', encoding = 'utf-8') as f1,open('log', mode = 'r+', encoding = 'utf-8') as f2:
print(f1.read()) # 可以打开多个
print(f2.read())
python学习之老男孩python全栈第九期_day008知识点总结的更多相关文章
- python学习之老男孩python全栈第九期_day027知识点总结——反射、类的内置方法
一. 反射 ''' # isinstance class A:pass class B(A):pass a = A() print(isinstance(a,A)) # 判断对象和类的关系 print ...
- python学习之老男孩python全栈第九期_day023知识点总结——类和对象命名空间、组合
一. 类和对象命名空间类里 可以定义两种属性: 1. 静态属性 2. 动态属性 class Course: language = 'Chinese' def __init__(self, teache ...
- python学习之老男孩python全栈第九期_day019知识点总结——collections模块、时间模块、random模块、os模块、sys模块
一. collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:namedtuple.deque.Counte ...
- python学习之老男孩python全栈第九期_day017知识点总结——初识递归、算法
一. 递归函数 如果一个函数在内部调用自身本身,这个函数就是递归函数. 最大递归深度默认是997 -- python从内存角度出发做得限制(而不是程序真的报错),最大深度可以修改 def func(n ...
- python学习之老男孩python全栈第九期_day010知识点总结
def qqxing(l = []): # 可变数据类型 l.append(1) print(l)qqxing() # [1]qqxing([]) # [1]qqxing() # [1, 1]qqxi ...
- python学习之老男孩python全栈第九期_day007知识点总结
基础数据类型汇总 1. str 2. int 3. list 4. bool 5. dict (1) fromkeys Python 字典 fromkeys() 方法用于创建一个新的字典,并以可迭代对 ...
- python学习之老男孩python全栈第九期_day001知识点总结
1. Python2与Python3的区别: Python2:源码不标准,混乱,重复代码太多: Python3:统一标准,去除重复代码. 编码方式: python2的默认编码方式为ASCII码:pyt ...
- python学习之老男孩python全栈第九期_day014知识点总结
# 迭代器和生成器# 迭代器 # 双下方法:很少直接调用的方法,一般情况下,是通过其他语法触发的# 可迭代的 --> 可迭代协议:含有__iter__的方法( '__iter__' in dir ...
- python学习之老男孩python全栈第九期_day016知识点总结
'''数据类型:intbool... 数据结构:dict (python独有的)listtuple (pytho独有的)setstr''' # reverse() 反转l = [1,2,3,4,5]l ...
随机推荐
- kafka java.rmi.server.ExportException: Port already in use
当你在kafka-run-class.sh中添加了export JMX_PORT=9300 开启了 jmx 后, 在使用 kafka bin/目录下的脚本时会报如下错误: java.rmi.serve ...
- springboot常用注解
@SpringBootApplication:包含了@ComponentScan.@Configuration和@EnableAutoConfiguration注解.其中@ComponentScan让 ...
- 文件压缩小项目haffman压缩
文件压缩的原理: 文件压缩总体可以分为有损压缩和无损压缩两类,有损压缩是指对mp3等格式的文件,忽略一些无关紧要的信息,只保留一些关键的信息,但并不因此影响用户对于这些mp3格式文件的体验度,无损压缩 ...
- 【xsy2913】 enos 动态dp
题目大意:给你一棵 $n$个点 以 $1$为根 的树,每个点有$ 0,1,2 $三种颜色之一,初始时整棵树的颜色均为 $0$. $m$ 次操作, 每次操作形如: 1 x y c : 将 $x$到$y$ ...
- [工具]渗透神器CobaltStrike 3.1.2 K8去后门破解版 & Windows版TeamServer
CS简介 Cobalt Strike(简称CS)是全球黑客公认一款非常优秀的渗透测试神器,以metasploit为基础的GUI的框架式渗透工具,集成了传统远控功能(远程桌面VNC.键盘记录.CmdSh ...
- 解决当FORM的ENCTYPE="multipart/form-data" 时request.getParameter()获取不到值的方法
部分转载于: http://blog.csdn.net/georgejin/article/details/1706647 http://www.cnblogs.com/loveyunk/p/6089 ...
- (转)深入浅出 RPC - 深入篇
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/mindfloating/article/details/39474123 <深入篇>我们 ...
- vue.js过渡效果之--javascript钩子
写在前面 姊妹篇 vue.js之过渡效果-css.今天一篇博文阅读量破300,心里还是有点小激动的.没错,我就是这么容易满足(害羞).这个数据可能连大牛一篇文章阅读量的零头都没有,但这却是我个人的一 ...
- spring@Transactional注解事务不回滚不起作用无效的问题处理
这几天在项目里面发现我使用@Transactional注解事务之后,抛了异常居然不回滚.后来终于找到了原因. 如果你也出现了这种情况,可以从下面开始排查. 一.特性先来了解一下@Transaction ...
- js截取字符串的后几位数
代码如下: var str="abcdefghhhh";//截取后4位 str.substring(str.length-4):