Python基础知识
文件内光标的移动
'''
a.xt=C你好啊
with open(r'a.txt','r',encoding='utf8') as f:
data = f.read(3) #C你好
print(data)
在文本模式下read括号内的数字表示读取几个字符
with open(r'a.txt', 'rb') as f:
data = f.read(4) # C你
print(data.decode('utf8'))
在二进制模式下read括号内的数字表示读取几个字节 (英文表示一个字节 中文三个字节起步)
with open(r'a.txt', 'r', encoding='utf8') as f:
data = f.read(3) # C你好
print(data)
data1 = f.read() #啊
print(data1)
打印data1光标上面执行至“好”末尾,所以打印“啊”
tell() 获取光标移动的字节数
'''
seek(offset,whence)
offset 控制光标移动的位移量(字节)
whence 模式
0 基于文件开头移动多少字节
1 基于光标当前所在位置移动多少字节
2 基于文件末尾移动多少字节
ps:1和2只能在二进制模式下使用 0无所谓
"""
# with open(r'aaa.txt', 'r', encoding='utf8') as f:
# data = f.read(3) # a你好
# print(data)
# print(f.tell()) # 7
# data1 = f.read()
# print(data1) # 啊
# with open(r'aaa.txt', 'rb') as f:
# data = f.read(4) # a你
# print(data.decode('utf8'))
# 代码控制光标移动
# with open(r'aaa.txt', 'r', encoding='utf8') as f:
# data = f.read() # a你好
# print(data)
# f.seek(0,0)
# print(f.read())
# with open(r'aaa.txt', 'rb') as f:
# data = f.read(4)
# print(data.decode('utf8')) # a你
# # f.seek(-3,1)
# # print(f.read().decode('utf8')) # 你好啊
# f.seek(-3, 2)
# print(f.read().decode('utf8')) # 啊
文件内数据修改
'''
机械硬盘存储数据的原理
1、数据的修改 其实是覆盖写并未添加删除
2、数据的删除 占有态和自由态
'''
# 方式1:覆盖式
with open(r'a.txt', 'r', encoding='utf8') as f:
data = f.read()
new_data = data.replace('aaa', 'bbb')
with open(r'a.txt', 'w', encoding='utf8') as f1:
f1.write(new_data)
'''
优点:硬盘只占用一块空间
缺点:数据量较大的时候会内存溢出
'''
# 方式2:重命名
import os
with open('a.txt', 'r', encoding='utf8') as read_f, /
open('a.txt', 'w', encoding='utf8') as wrife_f:
for line in read_f:
wrife_f.write(line.replace('bbb', 'ccc'))
'''
优点:不会造成内存溢出
缺点:可能有那么一段时间需要占用硬盘两块空间 也有可能在内存中穿件没有刷到硬盘
'''
函数简介
'''
1、函数
在不同的位置反复执行相同的代码
2、循环
在相同的位置反复执行相同的代码
'''
l1 = [1, 2, 3, 4, 5, 6]
# 自定义统计方法
def my_len():
value_couunt = 0
for i in l1:
value_couunt += 1
print(value_couunt)
my_len()
优点:减少代码量
len() 属于内置函数
'''
自己写的代码缺陷:
1.只能统计某个固定的数据类型里面的数据值个数
2、没有产生新的值(返回值)
'''
原创文章,作者:bd101bd101,如若转载,请注明出处:https://blog.ytso.com/272390.html