方法可以有三个,但其实是一个方法,因为不同的方法都是文件存储的方法,文件修改就只有一个方法:

将文件导入list后,重新写入文件(另一个文件或者当前文件)


1.当前文件读取后,list修改内容,写入另一个新建文件

f = open("D:\data\k1.TXT","r")
ff= open ("D:\data\\new\k1.TXT","w")
new=[]
for line in f:
new.append(line)
new[9]='1111\n'
for n in new:
ff.write(n)
f.close()
ff.close()

以上程序生成的文件跟源文件相比第10行改为1111,其他行保持不变,源文件保持不变

2.当前文件读取后,list修改内容,文件关闭再打开,重新写入

f = open("D:\data\k1.TXT","r")
new=[]
for line in f:
new.append(line)
new[9]='8888\n'
f.close() f = open("D:\data\k1.TXT","w")
for n in new:
f.write(n)
f.close()

以上程序将源文件第10行改为8888;源文件被覆盖掉了

3.当前文件读取后,list修改内容,指针指向文件头,重新写入

f = open("D:\data\k1.TXT","r+")
new=[]
for line in f:
new.append(line)
new[9]='6666\n'
f.seek(0)
for n in new:
f.write(n)
f.close()

以上程序将源文件第10行改为6666;源文件被覆盖掉了

以上程序尤其注意一点,文件的open方式是不一样的

下面附上不同open方式的效果:

 1、w 写模式,它是不能读的,如果用w模式打开一个已经存在的文件,会清空以前的文件内容,重新写
w+ 是读写内容,只要沾上w,肯定会清空原来的文件
2、r 读模式,只能读,不能写,而且文件必须存在
r+ 是读写模式,只要沾上r,文件必须存在
3、a和a+ 追加模式,也能写,在文件的末尾添加内容
4、rb+、wb+、ab+,这种是二进制模式打开或者读取,一些音乐文件

python3修改文件指定行的更多相关文章

  1. python3读取文件指定行的三种方案

    技术背景 考虑到深度学习领域中的数据规模一般都比较大,尤其是训练集,这个限制条件对应到实际编程中就意味着,我们很有可能无法将整个数据文件的内容全部都加载到内存中.那么就需要一些特殊的处理方式,比如:创 ...

  2. 2-vim-打开和新建文件-01-打开/新建文件/打开定位到文件指定行

    1.新建或打开文件 命令: vim 文件名 在终端中输入vi在后面跟上文件名即可. 如果文件已经存在,会直接打开文件. 如果文件不存在,会新建一个文件. 2.打开文件并定位到文件指定行. 命令: vi ...

  3. python读取文件指定行内容

    python读取文件指定行内容 import linecache text=linecache.getline(r'C:\Users\Administrator\Desktop\SourceCodeo ...

  4. Linux查看文件指定行数内容

    1.tail date.log               输出文件末尾的内容,默认10行 tail -20  date.log        输出最后20行的内容 tail -n -20  date ...

  5. 【Sed】使用sed删除文件指定行的内容

    sed多看帮助文档,受益良多 sed -i '$d' filename 例如删除 /etc/profile的最后一行 cat -n /etc/profile ...    101  export PA ...

  6. php替换文件指定行的内容

    //第一种 利用file 函数 读取文件,每一行都是一个数组元素 $arr = file($file); $arr[$line] = "hello"; file_put_conte ...

  7. python读文件指定行的数据

    import linecacheprint linecache.getline('url.txt',2) 读取url.txt文件的第2行内容

  8. 获取txt文件指定行内容

    #!/usr/bin/python num=0; ni=open("C:\Python34\ceshi.txt") for line in ni: num=num+1;  #表示行 ...

  9. 使用sed替换指定文件指定行的指定文本

    下面是将85行的127.0.0.1替换为192.168.10.108 sed -i '85{s/127.0.0.1/192.168.10.108/}' /etc/zabbix/zabbix_agent ...

随机推荐

  1. 【转】通过Nginx部署Django

    https://www.cnblogs.com/frchen/p/5709533.html Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中, ...

  2. (4)Linux(ubuntu)下配置Opencv3.1.0开发环境的详细步骤

    Ubuntu下配置opencv3.1.0开发环境 1.最近工作上用到在Ubuntu下基于QT和opencv库开发应用软件(计算机视觉处理方面),特把opencv的配置过程详细记录,以供分享 2.步骤说 ...

  3. nacos 报错is not in serverlist

    描述 nacos 没有在节点列表里面 查看日志 cd /opt/nacos/ tailf /logs/naming-raft.log <!--报错--> 2019-08-16 17:48: ...

  4. sts测试流程

    测试目的: 测试安全补丁打上了没 测试前提: 1.发货版本,user debug版本,相应安全补丁已合入,测试工具与安全补丁是对应的 2.selinux:Enable 3.连接ADB,stay awa ...

  5. Unity shader with lightmap

    小记一下用法与问题,时更 surface shader就不用操心了,自带lightmap计算 主要是vertex fragment shader部分 Unity5 bake light map有三种情 ...

  6. Linux——通配符

    因为 shell 频繁地使用文件名,所以shell有一个使命令行强大的特性, shell 提供了特殊字符来帮助我们快速指定一组文件名.这些特殊字符叫做通配符.使用通配符(也以文件名代换著称)允许我们依 ...

  7. Orcle获取当前时间加小时

    如下是oracle 获取当前数据库时间加2个小时 select to_date(TO_CHAR (SYSDATE, 'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24: ...

  8. Entity Framework 中遇到的一些小问题

    一.在多表关联中,一个表中有另一个表的model累,在Include方法里提示lambda表达式不是委托类型,这时候需要using System.Data.Entity; 二.插入数据时,主键并非自增 ...

  9. python线程理论

    一.什么是线程 线程:顾名思义,就是一条流水线工作的过程,一条流水线必须属于一个车间,一个车间的工作过程是一个进程 所以,进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合),而线程才 ...

  10. idea2019.1 永久破解 亲测可用

    idea2019突然注册码突然失效了,搜了很多破解办法,这个还是有效的:https://www.jianshu.com/p/b6dd43618a66