python在指定一行的下一行插入文本
给定一个程序,程序中有许多函数,比如,funcA,funcB,现在,如何在生成的函数中插入一个logger()语句?
这里用一个solidity程序做例子
pragma solidity ^0.4.0;
contract SimpleStorage {
uint storedData; // 声明一个类型为 uint (256位无符号整数)的状态变量,叫做 storedData
function set(uint x) public {
storedData = x; // 状态变量可以直接访问,不需要使用 this. 或者 self. 这样的前缀
}
function get() public view returns (uint) {
return storedData;
}
}
在执行get()函数中插入一条语句,"//insert example"字符串。如何办到?
思路:
1.用r+方式打开文本文件,
2. for line in
3. if "xxx" in line 如果xxx字符串在 该行中
4. 在该行后加入一行所需字符串, 使用字符串拼接。比如 line = line + " \n xxxxx",便可插入一行。
如果给你的sol代码全部被写成了一行,且换行符全部用\n字符串表示,要如何进行插入呢?
一些基础知识
r+方法是可读可写,
a方法是追加, 一般生成新的文件,用a模式(add)。
还有哪些常用模式?
python3打开文件
python2中用unicode方式格式字符串的方式是unicode("sss","utf-8"),
但是在python3中已经弃用,
NameError: name 'unicode' is not defined # python3中unicode()已经弃用而只使用str()了。
参考资料
python做编译器 https://www.cnblogs.com/lrysjtu/p/6256493.html
python替换所有符合要求的字符串
第一种方法是python的字符串替换函数replace.
a = "i love love love you"
newstr = a.replace("love", "hate")
替换之后,所有的love都会变为hate,因此这是全部替换。
replace函数并不总是成功。
https://www.jb51.net/article/164028.html
replace第三个参数是次数,如果是缺省,则是替换所有。
第二种方法是正则表达式,python正则表达式标准库re.
用法:
import re
a = 'i love love love you'
regex = re.compile('love') # 写入正则表达式
newstr = regex.sub('hate', a) #sub是正则替换方法,通过正则表达式匹配到字符串进行替换,第二个参数是原字符串
假设有字符串 "aasdfasef\\nsfewf\\n",现在要将\\n处理为\n,并且在处理完成后在某一行插入一行命令。
使用solidity代码处理。 将所有的\\n替换为\n,然后再将solidity的事件桩插入,之后再将\\n变回\n
使用正则表示式的方法,用\n替换\\n的方法行不通。原因是没有正确识别正则表示式里面的'\'。最后发现是没有在 '\\n'加r,即 r'\\n'
其实还可以通过用python字符串切分的方式,先将该字符串按照\\n切分.然后再逐行输出。但是效率太低下了。
python字符串前加r的含义:
将\变为普通字符而不是转义符号。在python3中,字符串即使是\\n也仍然无法解析,而最好在字符串之前加上r,表明\不是转义字符。
python正则表示详解https://www.jb51.net/article/166072.htm
python在指定一行的下一行插入文本的更多相关文章
- Python获取指定文件夹下的文件名
本文采用os.walk()和os.listdir()两种方法,获取指定文件夹下的文件名. 一.os.walk() 模块os中的walk()函数可以遍历文件夹下所有的文件. os.walk(top, t ...
- Python扫描指定文件夹下(包含子文件夹)的文件
扫描指定文件夹下的文件.或者匹配指定后缀和前缀的函数. 假设要扫描指定文件夹下的文件,包含子文件夹,调用scan_files("/export/home/test/") 假设要扫描 ...
- Python——合并指定文件夹下的所有excel文件
前提:该文件夹下所有文件有表头且具有相同的表头. import glob # 同下 from numpy import * #请提前在CMD下安装完毕,pip install numppy impor ...
- python获取指定文件夹下的文件路径
#!/usr/bin/python# -*- coding: UTF-8 -*-# @date: 2018/1/6 23:08# @name: tmp2# @author:vickey-wu impo ...
- table点击一行显示下一行的特效
效果体验:http://sandbox.runjs.cn/show/rw4vq8zo <!doctype html> <html> <head> <meta ...
- python获取指定文件夹下的文件和文件夹
import os filepaths = []; dirpaths = []; pathName = r'C:\anfei\json\20191128' for root, dirs, files ...
- linux下在某行的前一行或后一行添加内容
linux的sed工具是十分强大的,能很容易的实现在某关键词的前一行或后一行增加内容.今天在批量修改tomcat的日志时就用到了该功能. 一.在某行的前一行或后一行添加内容 具休操作如下: #匹配行前 ...
- 利用jquery给指定的table动态添加一行、删除一行
转自:http://www.cnblogs.com/linjiqin/p/3148181.html $("#mytable tr").find("td:nth-child ...
- 利用jquery给指定的table动态添加一行、删除一行,复制,值不重复等操作
$("#mytable tr").find("td:nth-child(1)") 1表示获取每行的第一列$("#mytable tr").f ...
随机推荐
- 01_Keil与Proteus联合仿真的注意事项
01. 关于keil5和Proteus8的联合仿真的操作步骤,这里就不细说,给个链接,步骤差不多是最齐全的 CSDN博客链接:https://blog.csdn.net/wzk456/article/ ...
- 剑指offer计划5(查找算法中等版)---java
1.1.题目1 剑指 Offer 04. 二维数组中的查找 1.2.解法 其实就是暴力解法的升级版,从最后一行开始判断,通过num当前的大小, 如果还是大于目标值则行数-1,若是小于则列数+1 1.3 ...
- Docker小白到实战之Dockerfile解析及实战演示,果然顺手
前言 使用第三方镜像肯定不是学习Docker的最终目的,最想要的还是自己构建镜像:将自己的程序.文件.环境等构建成自己想要的应用镜像,方便后续部署.启动和维护:而Dockerfile就是专门做这个事的 ...
- Linux新加磁盘并挂载到目录
步骤:1.分区 ----> 2.格式化 ----> 3.挂载 一.查看当前情况 1. 2. 二.磁盘分区 fdisk /dev/sdb 1.输入n,表示添加一个新的分区 2. e ex ...
- Java技术开发专题系列之【Guava RateLimiter】针对于限流器的入门到精通(针对于源码分析介绍)
Guava包中限流实现分析 RateLimiter 之前的文章中已经介绍了常用的限流算法,而google在Java领域中使用Guava包中的限流工具进行服务限流. 回顾使用案例 Google开源工具包 ...
- Hello Wolrd
这是一篇测试文章.....后续会更新一些文章.
- dede织梦会员模板调用template下模板head.htm方法及解析变量
1.找到dedecms会员中心的的目录 member ,然后在目录下用编辑器打开config.php 加入对dede模板解释函数如下: //php脚本开始 //引入arc.partview.cla ...
- xml字符串转成数组(php)
1 $str = '<xml> 2 <ToUserName> <![CDATA[gh_fc0a06a20993]]> </ToUserName> 3 & ...
- mysql将数据导入到另外一张操作
insert into ydcq_member_class (ClassId,signcount,UserId) select 64,2,`员工编号` from `学员名单`
- ATR吊灯止损策略 (含有tbquant源码)
ATR吊灯止损策略定义: 做多,止损放在最高价之下N个ATR. 做空,止损放在最低价之上N个ATR. 该策略生成的止损点就像是从市场最高价的"天花板"上悬挂下来的吊灯.所以命名为A ...