python day8
Posted zm419914
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python day8相关的知识,希望对你有一定的参考价值。
一. 回顾昨日内容
1. for...else...
2. join() 把列表转化成字符串
3. split() 字符串切割. 把字符串转化成列表
4. list删除问题.
在循环过程中. 进行删除的话. 索引和长度跟着变化.删除是不安全的
先把要删除的内容放在一个列表中. 然后循环这个列表. 删除旧列表
5. dict删除问题
循环的时候不可以删除dict中的内容
把要删除的内容放在列表中. 然后. 循环列表删除字典
6. 类型转换
list(tuple)
tuple(list)
0, "", [], {}, (), None, False, set()
7. set集合
1. 无序的. 2. 不重复的. 3. 内容必须是可hash的.不可变的.(int, str, bool, tuple, frozenset)
增加:add(), update(),
删除:pop(), clear()
查询:for
s1 & s2 交集
s1 | s2 并集
s1 - s2 差集
8. frozenset冻结集合. 不可变的.
9. 深浅拷贝
lst = [1,2,45]
lst1 = lst
拷贝的效果: 复制一个对象
浅拷贝: 把对象的第一层内容拷贝出来, copy() [:]
深拷贝: 把和这个对象相关的东西都拷贝一份, 占内存 deepcopy()
二. 今日主要内容
1. 文件操作.
2. r 只读模式
# f 叫文件句柄. 我们通过这个句柄去操纵这个文件.
# f = open("21天学会python", mode="r", encoding="UTF-8")
# content = f.read() # 从文件中读取到数据. 交给前面的content
# print(content)
# f.close()
# rb 读取字节
# f = open("21天学会python", mode="rb")
# content = f.read()
# print(content)
# f.close()
# print("马虎疼".encode("UTF-8"))
# 绝对路径. 从磁盘根目录寻找文件
# f = open("d:/sylar/呵呵.txt", mode="r", encoding="UTF-8")
# content = f.read() # 从文件中读取到数据. 交给前面的content
# print(content)
# f.close()
# 相对路径, 相对于你当前文件所在的位置
# 换行:
# print("大表哥小表弟 ")
# strip() # 可以去掉左右两端的空格和换行
# f = open("小护士模特少妇", mode="r", encoding="UTF-8" )
# content1 = f.readline().strip()
# content2 = f.readline().strip()
# content3 = f.readline().strip()
# content4 = f.readline().strip()
# print(content1)
# print(content2)
# print(content3)
# print(content4)
# f = open("小护士模特少妇", mode="r", encoding="UTF-8" )
# lst = f.readlines() # 一次性把所有的内容都去读出来.放在一个列表中
# for line in lst:
# print(line)
# f = open("小护士模特少妇", mode="r", encoding="UTF-8")
# # 文件句柄是一个可迭代对象
# for line in f: # 字节获取到每一行数据
# print(line)
# f.close()
# s = "床前明月光"
# print(s.strip())
# print("呵呵")
3. w 只写模式
# f = open("歌单", mode="w", encoding="utf-8")
# # content = f.read() # 在w模式下. 去读. 会出错
# # print(content)
# # f.write("两只老虎 ")
# # f.write("忐忑")
# # 向文件中写入内容. 这个时候会删除源文件中的内容. 写入新内容
# s = ["起风了", "凤舞九天", "冰河时代"]
# for e in s:
# f.write(e)
#
# # f.write("我们不一样")
# # f.write("有啥不一样")
#
#
# f.flush() # 刷新管道
# f.close()
f = open("歌单", mode="wb")
f.write("金毛狮王".encode("UTF-8"))
f.flush()
f.close()
4. a 追加写模式
f = open("歌单哈哈", mode="a", encoding="UTF-8")
f.write("又见炊烟")
f.flush()
f.close()
5. r+ 读写模式(重点)
# 正常用法
# f = open("歌单", mode="r+", encoding="UTF-8")
# # 读
# content = f.read()
# print(content)
#
# # 写
# f.write("成都")
# f.flush()
# f.close()
# 非正常用法
# f = open("歌单", mode="r+", encoding="UTF-8")
# # 写
# f.write("凉凉")
# # 读
# content = f.read()
# print(content)
# f.flush()
# f.close()
#
# f = open("歌单", mode="r+", encoding="UTF-8")
# content = f.read() # 光标在最后
# f.seek(0) # 重新回到起点
# c = f.read() # 光标还在最后
# print(content)
# print(c)
# f = open("歌单", mode="r+", encoding="UTF-8")
# f.seek(3) # 移动的是字节单位,在UTF-8文件中. 如果是中文移动的必须是3的倍数
# content = f.read() # 光标在最后
# print(content)
# 把"葫芦娃" 写到结尾. 然后把所有内容读取出来
# f = open("歌单", mode="r+", encoding="UTF-8")
# # 先把光标移动到结尾.
# f.seek(0, 2) # 移动到结尾
# # 写入内容
# f.write("葫芦娃")
# # 把光标移动到开头
# f.seek(0)
# # 读取内容
# content = f.read()
# print(content)
# f = open("歌单", mode="r+", encoding="UTF-8")
# f.seek(18)
# print(f.tell()) # 打印光标的位置
# print(f.read())
# f.close()
# f = open("歌单", mode="r+", encoding="UTF-8")
# f.seek(15)
# f.truncate() # 如果没有参数. 根据光标的位置. 保留光标前面的内容.后面的内容删除
# f.truncate(9) # 如果给了参数. 会把文件从头到参数之间的内容保留.其他的全部删掉
# f.flush()
# f.close()
# f = open("歌单", mode="r+", encoding="UTF-8")
# # f.read(2) # 2个字符
# # print(f.tell())
# f.seek(6)
# f.write("吼吼")
# f.close()
# 可以不关文件, 过一段时间自动给你关
# with open("歌单", mode="r+", encoding="utf-8") as f:
# content = f.read()
# print(content)
6. w+ 写读模式(不常用)
7. a+ 追加读写模式(不常用)
8. 文件的常用操作
9. 修改文件内容
# import os
# with open("糖葫芦", mode="r", encoding="UTF-8") as f1,
# open("糖葫芦_new", mode="w", encoding="UTF-8") as f2:
# content = f1.read()
# content = content.replace("大白梨", "冰糖葫芦")
# f2.write(content)
#
# os.remove("糖葫芦")
# os.rename("糖葫芦_new", "糖葫芦")
import os
with open("糖葫芦", mode="r", encoding="UTF-8") as f1,
open("糖葫芦_new", mode="w", encoding="UTF-8") as f2:
for line in f1:
line = line.replace("冰糖葫芦", "大白梨")
f2.write(line)
os.remove("糖葫芦")
os.rename("糖葫芦_new", "糖葫芦")
以上是关于python day8的主要内容,如果未能解决你的问题,请参考以下文章