Python的光标移动、文件概念、函数简介


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

(0)
上一篇 2022年7月9日
下一篇 2022年7月9日

相关推荐

发表回复

登录后才能评论