python中如何修改文件?

修改的概念:对于硬盘上数据的修改, 根本没有改的操作, 只有覆盖操作

修改的流程:文件的修改都是数据加载到内存中, 在内存中修改完再覆盖入硬盘

一.修改方式一

1.修改过程

  • 先以 r 模式打开源文件,将源文件内容全部读入内存
  • 然后在内存中完成修改
  • 再以 w 模式打开源文件,将修改后的内容覆盖入源文件

2.优缺点

  • 优点 : 不须要硬盘预留足够的空间
  • 缺点 : 会在文件内容过大的情况下,占用过多的内存

3.使用场景

看情况而定, 一般用于文本编辑器, 让用户能看到全部的内容

with open('user.txt',mode='r',encoding='utf-8') as f:
    data=f.read()
    data=data.replace('python','人生苦短,我用python')

with open('user.txt',mode='w',encoding='utf-8') as f:
    f.write(data)

二.修改方式二

1.修改过程

  • 以 r 模式打开源文件,然后以 w 模式打开一个临时文件
  • 从源文件中读一行到内存中,修改完毕后直接写入临时文件,循环往复,直到操作完毕所有行
  • 删除源文件,将临时文件名改名为源文件名

2.使用到 OS 模块

  • import os : 导入模块
  • os.remove( ) : 删除
  • os.rename( ) : 改名

3.优缺点

  • 优点 :没有对内存造成过度的占用
  • 缺点:需要硬盘预留出足够的空间来存放临时文件

4.适用场景

看具体而定, 一般用于程序员开发式

import os

with open('user.txt',mode='rt',encoding='utf-8') as read_f,\
        open('user.txt.swap',mode='wt',encoding='utf-8') as write_f:

    for line in read_f:
        if 'python' in line:
            line=line.replace('python','人生苦短,我用python')

        write_f.write(line)
#Python小白学习交流群:725638078
os.remove('user.txt')                  #删除源文件 
os.rename('user.txt.swap','user.txt')  #把临时文件名改成源文件名

三.文件拷贝示例

可以拷贝任意类型的文件
os.path.isfile()先判断文件是否存在

import os
while 1:
    user_file = input("请输入文件路径>>").strip()
    if not os.path.isfile(user_file):
        print("文件不存在,请重新输入")
        continue
    else:
        copy_path = input("请输入目标路径>>").strip()
        with open(r"%s"%(user_file),"rb")as read_file,\
            open(r"%s"%(copy_path),"ab")as w_f:
            for line in read_file:
                w_f.write(line)
            if len(user_file) == len(copy_path):
                print("copy成功")
                break

原文链接:https://www.cnblogs.com/python1111/p/17311275.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python中如何修改文件? - Python技术站

(0)
上一篇 2023年4月17日
下一篇 2023年4月17日

相关文章

  • cmd运行python文件时对结果进行保存的方法

    当我们使用cmd运行Python文件时,有时候需要将运行结果保存到文件中,以便后续查看或进行分析。下面是Python在cmd中保存结果的方法。 方法一:使用输出重定向符号 在cmd运行Python程序时,可以使用输出重定向符号>将运行结果保存到指定文件中。具体操作如下: 在cmd中进入Python文件所在目录; 输入命令python filename.…

    python 2023年5月20日
    00
  • python实现最大子序和(分治+动态规划)

    下面是详细讲解“Python实现最大子序和(分治+动态规划)”的完整攻略。 1. 什么是最大子序和? 最大子和是指在一个序列中,找到一个连续的子序列,使得该子序列的和最大。 2. Python实现最大子序和的方法 2.1 分治法 下面是Python使用分治法实现最大子序和的示例: def max_subarray(nums): if len(nums) ==…

    python 2023年5月14日
    00
  • 用Python实现等级划分

    下面是使用Python实现等级划分的完整攻略: 1. 等级划分的概述 等级划分是对数据集进行分类的一种常用方式,通过将数据集划分为多个等级或类别,实现对数据集的管理和使用。在Python中,我们可以使用数值型等序变量或类别型变量中的标称型、序数型变量,对数据集进行等级划分。 2. 使用等序变量实现等级划分 在使用等序变量实现等级划分时,需要将数据集中的值按照…

    python 2023年6月2日
    00
  • python 协程并发数控制

    Python协程并发数控制攻略 本攻略将介绍如何使用Python协程并发数控制。我们将使用asyncio库来创建协程,使用Semaphore类来控制并发数。 创建协程 在开始之前,我们需要了解如何使用asyncio库创建协程。以下是一个示例代码,用于创建一个简单的协程: import asyncio async def my_coroutine(): pri…

    python 2023年5月15日
    00
  • python 示例分享—逻辑推理编程解决八皇后

    下面是关于“Python示例分享—逻辑推理编程解决八皇后”的完整攻略。 1. 逻辑推理编程简介 逻辑推理编程是一种基于逻辑推理的编程范式,它的核心思想是将问题描述为一组逻辑约束条件,并使用逻辑推理来解决问题。逻辑推理编程通常使用一种专门的编程语言,如Prolog,来实现。 2. 八皇后问题 八皇后问题是一个经典的问题,它的目标是在一个8×8的棋盘上放置8…

    python 2023年5月13日
    00
  • Python创建系统目录的方法

    创建系统目录是Python中非常常见的操作之一。下面我将详细讲解Python创建系统目录的方法,希望对您有所帮助。 方法一:使用os模块 Python自带的os模块提供了操作文件和文件夹的方法,可以使用其中的os.makedirs()函数创建新的目录。 import os # 创建一个新的目录 os.makedirs(‘/Users/username/Doc…

    python 2023年5月30日
    00
  • Python 切分数组实例解析

    Python切分数组实例解析 在Python中,切分数组是一种常见的操作,它可以将一个数组切分成多个子数组。本攻略将详细介绍Python中分数组的方法和示。 切分数组的方法 在Python中,切分数组有多种方法,包括使用切片、使用numpy库、pandas库等。是这方法的详细介绍: 使用切片 使用切片是Python中最简单的分数组的方法。切片指通过指起始位置…

    python 2023年5月13日
    00
  • 利用Python实现岗位的分析报告

    利用Python实现岗位的分析报告是一个基于数据分析的任务,需要按照以下步骤进行: 1. 收集数据 收集数据是实现报告的第一步,需要从合适的渠道获取所需的数据。其中,常用的数据源包括: 爬虫:可以通过scrapy等爬虫框架获取数据源,如boss直聘等招聘网站的招聘信息等。 API:若所需数据源具有开放API接口,我们可以根据接口文档和调用方式,利用reque…

    python 2023年6月6日
    00
合作推广
合作推广
分享本页
返回顶部