zl程序教程

您现在的位置是:首页 >  Python

当前栏目

Python基础部分:12、文件光标移动(补充)

2023-02-18 16:27:51 时间

一、文件内光标移动实际案例

# 1、二进制,只读模式,打a.txt文件
with open(r'a.txt', 'rb') as f:
    # 2、将光标移动至字节末尾
    f.seek(0, 2)
    # 3、设置一个循环
    while True:
        # 4、遍历f文件
        line = f.readline()
        # 5、判断文件末尾是否写入新的字节
        if len(line) == 0:
            # 6、设置循环周期
            time.sleep(0.5)
        #、7、当上述条件不成立时执行以下功能
        else:
            # 8、当文件末尾写入新的数据时打印写入数据,并转换成字符串
            print(line.decode('utf8'), end='')

二、计算机硬盘修改数据的原理

​ 硬盘之所以能储存数据,是因为其盘片上有凹凸不平的存储介质,相当于人大脑的记忆细胞,把写入硬盘的数据记忆下来以供读取。
​ 当我们把硬盘格式化后,这些存储介质并没有被抹平,只是改变了它的逻辑地址而已,当有新的数据写入的时候,它才会被覆盖掉,数据恢复软件也正是基于这一原理,突破操作系统的寻址和编址方式,把尚未被覆盖的数据收集起来保存到新的位置。
​ 在我们往硬盘中写入数据后,当数据据中间需要修改时,这时候就需要抹除后重新写入,例如一段线条,我们没有办法将它从中间断开一样

三、文件内容修改

	文件内容修改有两种方式
方式一、覆盖写 
     '''
     将复制源文件中内容,局部修改后重新写入源文件
     '''
	# 1、修改文本中‘周日’为‘周一’
    a.txt = 今天时周日,心情真不错
	# 2、只读模式打开文本
    with open(r'a.txt', 'r', encoding='utf-8') as f:
        # 3、复制文本中内容
        data = f.raed()
	# 4、只写模式重新打开文本
    with open(r'a.txt', 'w', encoding='utf-8') as f:
        # 5、修改原先数据并复制到文本中
        f.write(data.replace('周日', '周一'))
   
方式二、换地写
	'''
    现在另一个地方写好文件,将原文件删除后,将新文件命名成源文件
    '''
    
import os

with open('a.txt', 'r', encoding='utf8') as read_f, \
open('.a.txt.swap', 'w', encoding='utf-8') as write_f:
	for line in read_f:
		write_f.write(line.replace('tony', 'kevinSB'))


os.remove('a.txt')  # 删除a.txt
os.rename('.a.txt.swap', 'a.txt')  # 重命名文件