python基础之文件的备份以及定位

目录
  • 小型文件备份
  • 备份大型文件
  • 总结

小型文件备份

# 文件的备份
def copyFile():
    # 接收用户输入的文件名
    old_file=input('请输入要备份的文件名:')
    file_list=old_file.split('.')
    # 构造新的文件名.加上备份的后缀
    new_file=file_list[0]+'_备份.'+file_list[1]
    old_f=open(old_file,'r') #打开需要备份的文件
    new_f=open(new_file,'w') #以写的模式去打开新文件,不存在则创建
    content=old_f.read()  #将文件内容读取出来
    new_f.write(content)  #将读取的内容写入备份文件
    old_f.close()
    new_f.close()
    pass
 copyFile()

备份大型文件

# 文件的备份
def copyFile():
    # 接收用户输入的文件名
    old_file=input('请输入要备份的文件名:')
    file_list=old_file.split('.')
    # 构造新的文件名.加上备份的后缀
    new_file=file_list[0]+'_备份.'+file_list[1]
    try:
    #     监视iu处理逻辑
        with open(old_file,'r') as old_f,open(new_file,'w')as new_f:
            while True:
                content=old_f.read(1024) #一次处理1024字节
                new_f.write(content)
                if len(content)<1024:
                    break
    except Exception as msg:
        print(msg)
    pass
 copyFile()

# tell 返回指针当前所在的位置
with open('Test.txt','r') as f:
    print(f.read(3))
    print(f.tell())  #读取三个字,每个汉字占两个字节,光标当前位置为6
    print(f.read(2))
    print(f.tell())  #共读取五个字,光标位置为10

# truncate 可以对源文件进行截取操作
fobjB=open('Test.txt','r')
print(fobjB.read())
fobjB.close()
print('截取之后的数据')
fobjA=open('Test.txt','r+')
fobjA.truncate(15)
print(fobjA.read())

# seek 控制光标所在的位置
with open('Test_备份.txt ','rb') as  f:
    data=f.read(2)   #按照二进制法则读取 两个字符即一个汉字
    print(data.decode('gbk'))
    f.seek(-2,1)  #相当于光标又到了0的位置 -代表往回便宜 1代表从当前位置开始 2代表从末尾开始读
    print(f.read(4).decode('gbk'))
    f.seek(-6,2)
    print(f.read(2).decode('gbk')) #从末尾开始向前偏移6个 读取两个字节

对于用r这种模式打开文件 在文本文件中,没有使用二进制的选项打开文件 只允许从文件你的开头计算相对位置,从文件尾部计算或者当前计算的话就会引发异常

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • python基础之类属性和实例属性

    属性:类属性和实例属性 类属性:就是类对象所有的属性 小结 '类属性 是可以 被 类对象和实例对象共同访问的 实例属性只能由实例对象访问 class Student: name='黎明' #属于类属性 就是Student类对象所拥有的 def __init__(self,age): self.age=age #实例属性 pass pass lm=Student(17) print(lm.name) #通过实例对象去访问类属性 print(lm.age) class Student: name='

  • python基础之错误和异常处理

    import Exception # except 在捕获错误异常的时候 是要根据具体的错误类型来捕获的 # 用一个块 可以捕获多个不同类型的异常 # EXception 可以捕获所有异常 当对出现的问题或者错误不确定的情况下 可以使用此种 print(dir(Exception)) try: # print(b) #捕获逻辑的代码 li=[1,2,3,4] print(li[10]) pass except NameError as msg: # 捕获到的错误 才会在这里执行 print(ms

  • python基础之模块的导入

    import导入模块 import time #导入的时模块中的所有内容 print(time.ctime()) #调用模块中的函数 # import 到首次导入模块的时候,会发生如下3步操作 # 1.打开模块文件 # 2.执行模块对应的文件 将执行过程中产生的名字都丢到模块的名称空间 # 3.在程序中会有一个模块[可以取别名的]的名称只想模块的名称空间区 # 4.建立模块时,不要与模块名相同,否则系统会直接就近在文件中查找,而不是导入真正的模块 # 引用格式:模块名:函数名 可以防止不同模块中

  • python基础之类方法和静态方法

    目录 类方法 静态方法 复习 总结 类方法 class People: country='China' # 类方法 用classmethod来修饰 @classmethod #通过标识符来表示下方方法为类方法 def get_country(cls): #习惯性使用cls return cls.country #访问类属性 pass pass print(People.get_country()) #通过类对象去引用 p=People() print('实例对象访问%s'%p.get_count

  • python基础之函数的定义和调用

    # 第一题 # 写函数,接受n个数字,求这些参数数字的和 def sumFunc(*args): # 处理接受的数据 result=0 for item in args: result+=item pass return result pass # 调用 rs=sumFunc(1,2,3,4) print('rs={}'.format(rs)) #填坑法 format格式化输出 # 写函数找出传入的列表或元组的奇数位对应的元素,并返回一个新的列表 def processFunc(con): li

  • python基础之序列操作

    类似于and操作 类似于or操作 # 类型转换 # sorted li=[2,45,1,67,23,10] li.sort() #list的排序方法 print(li) # sorted li=[2,45,1,67,23,10] # li.sort() #list的排序方法 print(li) # sorted() sorted(li) print(li) # 类型转换 # sorted li=[2,45,1,67,23,10] # li.sort() #list的排序方法 print(li)

  • python基础之文件的备份以及定位

    目录 小型文件备份 备份大型文件 总结 小型文件备份 # 文件的备份 def copyFile(): # 接收用户输入的文件名 old_file=input('请输入要备份的文件名:') file_list=old_file.split('.') # 构造新的文件名.加上备份的后缀 new_file=file_list[0]+'_备份.'+file_list[1] old_f=open(old_file,'r') #打开需要备份的文件 new_f=open(new_file,'w') #以写的模

  • python基础之文件操作

    1.打开文件 open()函数简介 : 打开文件使用open函数,可以打开一个已经存在的文件,如果没有这个文件的话,会创建一个新文件 完整的语法格式为: open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) 参数说明:(一般只会用到前三个) file: 必需,文件路径(相对或者绝对路径). mode: 可选,文件打开模式 encoding: 一

  • python基础_文件操作实现全文或单行替换的方法

    python修改文件时,使用w模式会将原本的文件清空/覆盖.可以先用读(r)的方式打开,写到内存中,然后再用写(w)的方式打开. 1.替换文本中的taste 为 tasting Yesterday when I was young 昨日当我年少轻狂 The taste of life was sweet 生命的滋味是甜的 As rain upon my tongue #将文件读取到内存中 with open("./fileread.txt","r",encoding

  • python基础之文件处理知识总结

    一.open()方法 python open()方法用于打开一个文件,并返回文件对象,在对文件处理的过程中都需要用到这个函数,如果文件无法打开,会抛出OSError. 注意:使用open()方法的时候一定到保证关闭文件对象,文件里面的内容才会被保存,关闭文件需要调用close()方法. open()方法常用的形式是接收两个参数:文件名(file)和模式(mode) 基本语法: open(file,mode='r') 完整的语法: open(file,mode='r',buffering=1,en

  • python基础之文件操作和异常处理

    一.文件和异常 1.1从文件中读取数据 读取整个文件 读取文件先要创建一个文件,在程序的同一目录下. greet.txt "Hello World! Hello World! Hello World! Hello World!" with open('greet.txt') as file_object: contents=file_object.read() print(contents) 如果txt文件中有中文,输出出现乱码时,可以with open('greet.txt',enc

  • Python基础之文件操作及光标移动详解

    目录 一.文件操作 1.文件的概念 2.代码打开文件的方式 二.文件读写模式 1.'r' 只读模式 read 2.'w' 只写模式 write 3.'a' 尾部追写模式 add 三.文件操作模式 1.t 文本模式 2.b 二进制模式 四.文件诸多方法 1.read() 2.for循环 3.line 4.readable 5.write 6.flush 五.文件内光标的移动 1.seek() 2.tell() 一.文件操作 1.文件的概念 1.文件就是计算机暴露给用户操作硬盘的快捷方式 2.计算机

  • python如何获取文件当前位置和定位某个位置

    目录 一.背景 二.获取当前读写位置 三.定位到某个位置 四.总结 一.背景 Python 是一门易于学习.功能强大的编程语言.它提供了高效的高级数据结构,还能简单有效地面向对象编程. Python 优雅的语法和动态类型以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的理想语言. 下面我们来介绍一下python的文件指针定位相关知识. 二.获取当前读写位置 在读写文件的过程中,如果想知道当前文件位置指针的位置,可以通过调用tell()方法来获取. tell()方法返回文件的当前位置,

  • Python基础之文件读取的讲解

    with open(filename) as fp: dataMat = [] for line in fp.readlines(): # fp.readlines()返回一个list,list of strs # 也即line类型为`str` curLine = line.strip().split('\t') # 只有`str`类型才有strip()成员函数, # 在经过split()分割,得到list类型 # 也即curLine类型为list # curLine 仍然是由字符串构成的lis

  • 强悍的Python读取大文件的解决方案

    Python 环境下文件的读取问题,请参见拙文 Python基础之文件读取的讲解 这是一道著名的 Python 面试题,考察的问题是,Python 读取大文件和一般规模的文件时的区别,也即哪些接口不适合读取大文件. 1. read() 接口的问题 f = open(filename, 'rb') f.read() 我们来读取 1 个 nginx 的日至文件,规模为 3Gb 大小.read() 方法执行的操作,是一次性全部读入内存,显然会造成: MemoryError ... 也即会发生内存溢出.

  • python实现文件的备份流程详解

    python实现输入要备份的文件名称:test.txt 12行代码实现文件备份功能 第一步:打开我们的pycharm软件,然后新建一个Python文件 第二步:新建好我们的Python文件后,我们在编辑界面输入以下代码: oldfilename=input("请输入要备份的文件名:") #输入需要备份的旧文件名 oldfile=open(oldfilename,'r') #打开旧文件 if oldfile: #如果文件存在,则执行下面的语句 fileflagnum=oldfilenam

随机推荐