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

将文件导入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. luoguP2365 任务安排 斜率优化 + 动态规划

    Code: #include<bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) # ...

  2. BZOJ 4408: [Fjoi 2016]神秘数 主席树 + 神题

    Code: #include<bits/stdc++.h> #define lson ls[x] #define mid ((l+r)>>1) #define rson rs[ ...

  3. 数据库的目录IDF打不开!附加失败

    选择附加数据库,结果 武汉地图打不开 这是mapgis k9里面自带的地图 IDF:Identity Definition File?https://zhidao.baidu.com/question ...

  4. <自动化测试>之<自动获取手机短信验证码>

    第一次写博,最近解决了做自动化测试短信验证码自动获取填入的方法减少了脚本的人工干预,并非拦截短信,所以不存在安全警报提醒,拿出来分享给大家,有感兴趣的大家可以加Q1856100 目前在职测试开发,,写 ...

  5. 5 October

    POJ2676 Sudoku 位运算 + 搜索.更好的优化方法:方案数最小的空格先填. 把某一位 置为 0:a &=~ (1<<n) 把某一位 置为 1:a |= (1<&l ...

  6. Facebook发布Tweaks:让微调iOS应用变得更简单

    假设,你正在开发一款iOS应用. 你的iOS应用有很多动画效果,而你(或你的设计师)希望让那些动画效果的持续时间恰到好处.那华丽的抽屉特效是应该耗时半秒钟,还是四分之三秒呢? 通常情况下,开发者会对合 ...

  7. 牛客提高D6t1 积木大赛

    分析 每次修改用二位差分记录一下 之后对于三维分别统计即可 代码 #include<iostream> #include<cstdio> #include<cstring ...

  8. Java常用工具——java字符串

    一.String常用字符串 package com.imooc.string; public class StringDemo { public static void main(String[] a ...

  9. SparkSQL架构

    Spark SQL运行架构 Spark SQL由Core.Catalyst.Hive和Hive-Thriftserver组成 core:负责处理数据的输入/输出,从不同的数据源获取数据(如RDD.Pa ...

  10. 【python】含中文字符串截断

    对于含多字节的字符串,进行截断的时候,要判断截断处是几字节字符,不能将多字节从中分割,避免截断后乱码 下面给出utf8和gb18030上的实现, 用任何一种都可以,可以先进行转码,用encode, d ...