python如何回到指定行_Python修改文件往指定行插入内容的实例

需求:批量修改py文件中的类属性,为类增加一个core = True新的属性

原py文件如下

a.py

class A():

description = "abc"

现在有一个1.txt文本,内容如下,如果有py文件中的description跟txt文本中的一样,则增加core属性

1.txt

description = "abc"

description = "123"

实现思路:

1.需要遍历code目录下的所有py文件,然后读取所有行数内容保存到lines列表中

2.遍历每个文件的每一行,匹配1.txt中的description,如果匹配中,就返回行号

3.往lines列表中根据行号插入要增加的新属性

4.重新写回原文件,达到修改文件的目的

如果修改成功后,效果应该是这样的

a.py

class A():

description = "abc"

core = True

实现代码:

import os

original_folder = 'E:\\code\\'

core_list = []

count = 0

# if the description is in the current line

def isMatchDescription(line_buffer):

global core_list

# if not catch the core_list in global, reload it.

if not core_list:

with open("./core.txt","r") as f:

core_list = f.readlines()

# if match the core description

for des in core_list:

if line_buffer.strip() == des.strip():

return True

return False

def modifySignatures():

for dirpath, dirnames, filenames in os.walk(original_folder):

for filename in filenames:

modifyFile(os.path.join(dirpath,filename))

def modifyFile(filename):

global count

#print "Current file: %s"% filename

lines = []

with open(filename,"r") as f:

lines = f.readlines()

hit = 0

# Enume every single line for match the description

for index, line in enumerate(lines):

if isMatchDescription(line):

hit = index

print hit

print "Matched file:%s" % filename

count+=1

if hit > 0:

lines.insert(hit-1,' core = True\n')

f.close()

# Write back to file

with open(filename,"w") as f:

for line in lines:

f.write(line)

f.close()

if __name__ == '__main__':

modifySignatures()

print "Modified:%d"%count

代码中的lines.insert(hit-1,' core = True\n')这一行,hit代表目标py文件的description属性的行号,我之前用的是hit+1,但是后面发现有些文件出现了语法错误,原因是py文件中有些description的值太长,导致原文件使用了代码换行符\,如下:

a.py

class A():

description = "abc\

aaaaabbbbb"

这样的如果修改后就变成了

class A():

description = "abc\

core = True

aaaaabbbbb"

为了避免这个bug,后面我才改成了hit-1

lines.insert(hit-1,' core = True\n')

这样修改的py文件后就是这样的效果

class A():

core = True

description = "abc\

aaaaabbbbb"

以上这篇Python修改文件往指定行插入内容的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

本文标题: Python修改文件往指定行插入内容的实例

本文地址: http://www.cppcns.com/jiaoben/python/251474.html

解码运动想象:BCI Competition IV 2a数据集实战指南 本文提供了BCI Competition IV 2a数据集的实战指南,详细解析了该经典运动想象脑电数据集的结构、文件格式与实验范式。通过MNE-Python等工具,逐步演示了从原始信号读取、预处理(通道选择、滤波、分段)到特征提取(CSP、频带功率)和模型训练(LDA、SVM)的完整流程,并强调了受试者独立评估的重要性,为BCI研究者提供了可复现的入门与进阶路径。 阅读详情

相关推荐

易盾滑块的js逆向分析

基于易盾的滑块验证码进逆向分析,最种实现全系列的验证码逆向,包括滑块、点选、推理拼图等多种类型。

shanf7921的博客 3万+

Python .dat 文件追加写入

前段时间处理.dat格式的二进制文件,需要在文件的中间追加写入的同时不复制文件内容。查了很多地方没什么头绪,感觉不可。最后还是使用的在文章末尾的追加写入。给后面要解决问题的人先趟趟水。如果有找到了解决方法可以在文件的中间位置追加写入的也敲我一下。代码上没什么东西,就还是open,开个二进制写入格式就好了。“ab"为二进制追加。

weixin_43560399的博客 893

1990-2020年全国各省份用电量和发电量逐月数据-最新出炉.zip

1990-2020年全国各省份用电量和发电量逐月数据-最新出炉.zip

chatgpt赋能pythonPython怎样跳转到某一–从入门到精通

Python跳转到某一是一种技术,可以让程序直接跳转到你想要的代码。这种技术通常用于调试和查找程序错误。Python跳转到某一也可以称为跳转。本文由chatgpt生成,文章没有在chatgpt生成的基础上进任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是。

b45e1933f46的博客 1444

python代码中怎么跳转到指定

Python 中,可以使用 continue 和 break 语句跳转到指定。 continue 语句用于跳过当前循环的剩余部分,然后继续执下一次循环。 break 语句用于终止循环,并跳出循环体。 下面是一个示例: for i in range(10): if i == 5: continue # 跳过剩余部分,继续执下一次循环 print(i) f...

weixin_42576804的博客 3719

python怎么使用goto跳转执指定代码

python使用goto语句 各版本的使用方法 以及问题解决方法

m0_65925957的博客 2万+

python如何回到指定_如何跳回特定的代码Python

我刚拿出一些旧代码,但我很想知道如何跳回特定的代码。我的意思是,如果有一个if语句,它将执某些操作,除非另有说明,无论如何,我要做的是当if语句结束时,或者当我到达else位时,我希望代码不再从头开始,而是从代码中的某一开始。我将在下面解释更多:代码:def main():abc = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'...

weixin_39633954的博客 7953

解惑:不要在多门语言间徘徊,把一门语言玩熟了,其他语言都是纸老虎...

刚才和我弟弟通电话聊了聊这一段时间的学习以及下一阶段的学习规划,我弟弟在读大二,是计算机专业。今天和他聊电话,感触颇多,倒不是因为我发现了新的东西,而是因为竟然连他都不相信我说过的一些我认为非常根本、非常核心的话,“连我的亲兄弟都不信我说的话,那些在XX网上随声附和我、捧我臭脚的同学右有几个真正信我说的话的同学呢?”,想到这里心里不禁一片悲凉。 到底他说的那句话触动了我呢,那就是“我现在C++语法...

Xn346的博客 364

java和python哪个容易找工作_别再被忽悠了就算学CJAVA也千万别碰python(你学Python并不适合入门并且很难找到工作的)...

(你学Python并不适合入门并且很难找到工作的)https://m.toutiaocdn.com/i6917879948204163596/?app=news_article_lite&timestamp=1611635312&use_new_style=1&req_id=20210126122831010129034197093EC96D&group_id=69...

weixin_33340674的博客 666

自动化测试入门(2)——自动化学习方向

不管你们是打算学APP自动化测试或者web自动化测试,还是其他的自动化测,都有一个前置条件,那就是必须懂编程语言。 1.编程语言选择 如果你还没决定好方向,那么先去学习一门编程语言再好不过。 不要觉得学一门编程语言简单,以为就学个C,Java就可以了,实际上学一门编程语言你还需要懂计算机基础,编译原理,数据结构,算法等等(我还没写全)。这些知识你不学可能你很难理解C或java里的某些知识点,到时候...

疯愚者的博客 4254

勿在浮沙筑高台 - VC初学者入门指南

引言:    沉寂了三个多星期,一直在写这个东西。    首先声明,我不是高手。我只学过几年VC,水平尚不及高手万分之一,但自认已经算是入门了。在此想和打算学VC却又苦于不知如何下手的朋友们聊聊如何顺利的通过入门这一关。预备知识:    1. VC是一门语言吗?    VC不是一种语言,而是一种集成开发环境(IDE)。利用VC,可以把源程序编写、编译链接、调试运等各个工作放在一块完成,很方便。如

木木 1535

python创建文件代码-几Python代码搞定文件操作

文件的读写open()方法用open()方法可以对文本进读写操作,它会返回一个File对象,调用的时候,一般需要传入两个参数file:名文件(绝对路径或者相对路径都)。mode:访问的模式。常用的有w:写入模式,如果文件不存在则会创建一个,若存在,删掉原有内容。从头开始编辑。w+:读写模式。如果文件不存在则会创建一个,若存在,删掉原有内容。从头开始编辑。r:只读模式。从文件头开始读取文件。a:...

weixin_39628271的博客 842

python如何返回上一个循环,python怎么返回上一

这篇文章主要介绍了python中如何返回执前边的指令?,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

2301_79533350的博客 1744

2021:Python的下载安装教程(很详细,初学者也能懂)

文章目录 Python的下载安装 配置环境变量 喜欢技术的,一起进群交流学习吧!!! Python的下载安装 1.进入Python的官网, http://www.python.org/download/ ,这里以下载Windows的Python为例 2.选择下载的版本是3.9.9,双击下载,注意:最新的Python 3.9.9,要求是windows 7以上才 3.下载完成后点击运,会出现安装界面,选择Upgrade Now 这个是默认安装路径:C:Users angAppDataLocalPr

embelfe_segge的博客 14万+

chatgpt赋能pythonPython学习笔记:如何退回到上一步?

本文由chatgpt生成,文章没有在chatgpt生成的基础上进任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。

www_xuhss_com的博客 3884

python中返回到哪一_在Python中如何通过字符搜索跳到一

在不知道垃圾数据的大小或扫描垃圾数据的情况下,您无法直接查找它。但是,将文件包装在^{}中以丢弃并不难,直到您看到“良好”的数据,之后它将遍历所有剩余的:import itertools# Or def a regular function that returns True until you see the line# delimiting the beginning of the "go...

weixin_29149577的博客 991

请教一个python问题,如何返回到指定的代码?经小杰大牛指点,终于实现了。

如题,请看下面这段代码: print("Please give me two numbers.") print("I print out the sum of these two numbers") print("If you enter 'q' ,quit.") while True:

qq_20667737的博客 2万+

numpy 返回指定指定元素的位置索引

先上代码,主要语句为np.where(b[c]==1),详细解释如下: import numpy as np b = np.array([[-2,-3,0,0,0,6,4,1],[88,1,0,0,0,6,4,2],[99,6,0,0,1,6,4,2]]) # 三八列的数组b print('b\n',b) c = np.array([2,0]) # c表示指定 print('...

徐亦快的踩坑记录 1万+

python怎么读取csv文件学生名单-使用python获取csv文本的某或某列数据

就可以存储为csv文件文件内容是:No.,Name,Age,Score1,Apple,12,982,Ben,13,973,Celia,14,964,Dave,15,95假设上述csv文件保存为"A.csv",如何用Python像操作Excel一样提取其中的一列,即一个字段,利用Python自带的csv模块,有两种方法可以实现:第一种方法使用reader函数,接收一个可迭代的对...

weixin_37988176的博客 1125
上一篇: 如何查看python安装了哪些模块_[内容] Python3 模块的查看(查看已安装的模块)...
下一篇: autosar规范与车用控制器软件开发pdf_AUTOSAR通信篇—CanIf模块
weixin_39732506
博客等级 码龄9年 42粉丝 152原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值