zoukankan      html  css  js  c++  java
  • python学习笔记-day5-文件修改

    今天说说如何使用python进行文件修改的操作,之前已经说过如何读写文件以及各种读写的方式,请查看http://www.cnblogs.com/shmily2018/p/8807123.html。

    一、修改文件的方式

    1、在原来内容里基础上进行修改

    #方法1、简单粗暴直接
    #2、打开一个文件,获取到他的所有内容
    #3、对内容进行修改
    #4、把新的内容写进去

    f = open('username', 'a+')
    f.seek(0)
    all_str = f.read()
    new_str = all_str.replace('123456','78910') #replace,如果字符串里没有想替换的子串,是不会替换的,也不会报错
    f.seek(0)
    f.truncate() #清空文件内容,如果不用seek的情况下,文件指针已经在最后了

    f.write(new_str)
    f.close()

    示例:
    f = open('username', 'a+')
    f.seek(0)
    all_str = ''
    for line in f: #这样也可以,不需要用f.readlines()
    new_str = 'syz_' + line
    all_str += new_str

    f.seek(0)
    f.truncate()
    f.write(all_str)
    f.close()

    注意点:
    #区别
    #for line in f:  #是按行读,读的时候才去执行
    #for line in f.readlines()  #是一次性将所有内容读到一个list里,文件大的时候效率不好或者有问题


    2、修改文件第2种方式,用两个文件

    #打开2个文件
    #先打开a文件,修改a文件
    #写一行到b文件
    #a.txt a.txt.bak
    #删除a.txt文件,把a.txt.bak改名

    #把花替换为flower

    import os
    #先替换,后改名
    with open('words', encoding='utf-8') as fr, open('.words.bak', 'w', encoding='utf-8') as fw:
    for line in fr:
    new_line = line.replace('花','flower')
    fw.write(new_line)

    os.remove('words') #删除文件
    os.rename('.words.bak', 'words') #改名


    注意点:
    #write与writelines区别
    fw = open('test', 'w')
    #fw.write(string) #只能写字符串
    a = ['123456','llllll']
    for i in a:
    fw.write(i)

    fw.writelines() #writelines()会帮助咱们循环一次,如果是列表的时候不用自己循环
     
    总是想多努力一点的人
  • 相关阅读:
    【转载】JavaScript变量: 变量命名原则
    【转载】mysql运行报【The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone...】的解决方法
    Java Web 环境搭建
    原生JS消息提示插件Message.js
    SQL Server 参数嗅探问题
    根据表名和列名获取关联index的创建脚本
    mongodb快速均衡导入数据
    index optimize
    PG Foreign key 外键
    无密码登陆
  • 原文地址:https://www.cnblogs.com/shmily2018/p/8892059.html
Copyright © 2011-2022 走看看