首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在文件结束前插入文本n行

在文件结束前插入文本n行
EN

Stack Overflow用户
提问于 2021-02-20 09:57:27
回答 2查看 657关注 0票数 0

我有这个文件,我希望能够在python文件结束之前编写文本n行,我知道写方法是存在的,但是它只在文件的末尾插入文本。我想做这样的事情:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
INSERT INTO `mod238_yoast_seo_meta` VALUES("12749", "0", "0");
INSERT INTO `mod238_yoast_seo_meta` VALUES("12755", "0", "0");
INSERT INTO `mod238_yoast_seo_meta` VALUES("12757", "1", "0");
INSERT INTO `mod238_yoast_seo_meta` VALUES("12765", "1", "0");
INSERT INTO `mod238_yoast_seo_meta` VALUES("12774", "1", "0");
INSERT INTO `mod238_yoast_seo_meta` VALUES("12785", "1", "0");

/* I would like to be able to insert some text here with python/*

SET FOREIGN_KEY_CHECKS = 1; 

/* Duplicator WordPress Timestamp: 2021-01-08 15:49:50*/
/* DUPLICATOR_MYSQLDUMP_EOF */

/* DUPLICATOR_MYSQLDUMP_EOF */是文件的最后一行,非常感谢!此外,我还使用python3.8。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-20 10:17:35

处理此问题的一种方法是将文件读入行列表中。插入您想要的位置的新行。然后将这一系列行写到一个新文件中。

如果您知道要插入的行号,则可以直接使用该位置。如果需要根据文件底部的行数计算行位置,则可以将行位置计算为总行数和N行数之间的差额。

可能是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    # Insert text n lines before the end of file

    file_path = 'text.txt'
    line_to_insert = '/*this is my inserted line*/\n'
    lines_from_bottom = 4

    with open(file_path) as file:
        lines = file.readlines()
        insert_position = len(lines) - lines_from_bottom
        lines.insert(insert_position, line_to_insert)
        with open('new_file.txt', 'w') as new_file:
            for line in lines:
                new_file.write(line)
票数 0
EN

Stack Overflow用户

发布于 2021-02-20 10:09:00

如果您知道必须跳过多少行,从结尾开始,只需逐行拆分源文本,添加新文本,然后重新连接:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
source_text = '''INSERT INTO `mod238_yoast_seo_meta` VALUES("12749", "0", "0");
INSERT INTO `mod238_yoast_seo_meta` VALUES("12755", "0", "0");
INSERT INTO `mod238_yoast_seo_meta` VALUES("12757", "1", "0");
INSERT INTO `mod238_yoast_seo_meta` VALUES("12765", "1", "0");
INSERT INTO `mod238_yoast_seo_meta` VALUES("12774", "1", "0");
INSERT INTO `mod238_yoast_seo_meta` VALUES("12785", "1", "0");

SET FOREIGN_KEY_CHECKS = 1; 

/* Duplicator WordPress Timestamp: 2021-01-08 15:49:50*/
/* DUPLICATOR_MYSQLDUMP_EOF */'''

custom_text = "my new cool text"
lines_before = 5 # you want to add the new text 5 lines before the end

lines = source_text.split('\n')
lines.insert(-lines_before, "\n" + custom_text)
new_text = "\n".join(lines)

print(new_text)

否则,您可以为此使用正则表达式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import re

source_text = '''INSERT INTO `mod238_yoast_seo_meta` VALUES("12749", "0", "0");
INSERT INTO `mod238_yoast_seo_meta` VALUES("12755", "0", "0");
INSERT INTO `mod238_yoast_seo_meta` VALUES("12757", "1", "0");
INSERT INTO `mod238_yoast_seo_meta` VALUES("12765", "1", "0");
INSERT INTO `mod238_yoast_seo_meta` VALUES("12774", "1", "0");
INSERT INTO `mod238_yoast_seo_meta` VALUES("12785", "1", "0");

SET FOREIGN_KEY_CHECKS = 1; 

/* Duplicator WordPress Timestamp: 2021-01-08 15:49:50*/
/* DUPLICATOR_MYSQLDUMP_EOF */'''

custom_text = "my new cool text"
new_text = re.sub("\s+(?=SET FOREIGN_KEY_CHECKS)", "\n\n%s\n\n" % custom_text, source_text)

print(new_text)

这两种方法都将打印:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
INSERT INTO `mod238_yoast_seo_meta` VALUES("12749", "0", "0");
INSERT INTO `mod238_yoast_seo_meta` VALUES("12755", "0", "0");
INSERT INTO `mod238_yoast_seo_meta` VALUES("12757", "1", "0");
INSERT INTO `mod238_yoast_seo_meta` VALUES("12765", "1", "0");
INSERT INTO `mod238_yoast_seo_meta` VALUES("12774", "1", "0");
INSERT INTO `mod238_yoast_seo_meta` VALUES("12785", "1", "0");

my new cool text

SET FOREIGN_KEY_CHECKS = 1;

/* Duplicator WordPress Timestamp: 2021-01-08 15:49:50*/
/* DUPLICATOR_MYSQLDUMP_EOF */

显然,您必须用new_text变量的内容覆盖输入文件(或创建一个新的文件),而不是打印它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66294821

复制
相关文章
python--类属性的调用方法
我们现在要在do_class.py这个文件里调用class_learn.py里的类
py3study
2020/01/07
6000
python--类属性的调用方法
对象的属性方法调用的两种方法
json格式创建一个对象: //        用原生形式创建对象(也叫用json格式创建对象)就是花括号新建         var mix2={color:'骚粉色',         size:'6.44寸',         weight:'314g',         price:'3299元',         call:function(){             alert('可以打电话')         },         surf:function(){             a
十月梦想
2018/08/29
9790
Python类的调用以及私有和公有属性方法的调用
代码 class Site: __wocao = 123 #私有属性 wocao = 456 #公有属性 def __init__(self, name, url): self.name = name # public self.__url = url # private def who(self): print('name : ', self.name) print('url : ', self._
院长技术
2021/02/22
2.5K0
子类调用父类的同名方法和属性
在这里,定义Prentice类,继承了Master和School类,添加了和父类同名属性和方法
北山啦
2022/10/31
1.9K0
【python 3.6】类:访问属性及调用方法
调用方法时,使用x.zhekou(),要加括号,是否有返回,要看方法中是否有return
BH8ANK
2021/01/29
1.8K0
Vue 子组件调用父组件的属性,方法「建议收藏」
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
2.9K0
php面向对象中static静态属性和静态方法的调用
这篇文章主要介绍了php面向对象中static静态属性和静态方法的调用,实例分析了static静态属性和静态方法的原理与调用技巧,需要的朋友可以参考下 本文实例讲述了php中static静态属性和静态方法的调用。分享给大家供大家参考。具体如下: 这里分析了php面向对象中static静态属性和静态方法的调用。关于它们的调用(能不能调用,怎么样调用),需要弄明白了他们在内存中存放位置,这样就非常容易理解了。静态属性、方法(包括静态与非静态)在内存中,只有一个位置(而非静态属性,有多少实例化对象,就有多少个属性
joshua317
2018/04/16
1.8K0
Java——this关键字(调用本类属性、调用本类方法、表示当前对象)
this是一个非常灵活的关键字,不会明确表示一个固定概念,比如int,它就是表示一个整型。
Winter_world
2020/09/25
4.7K0
Java——this关键字(调用本类属性、调用本类方法、表示当前对象)
Java-方法重载时 调用未定义的对象属性
public class TestWayReload { int id; String name; String pwd; public TestWayReload(){ System.out.println(“Hellow World!”); System.out.println("################"); }
Fisherman渔夫
2019/07/30
5.6K0
图片批量重命名编号不带括号的_批量重命名不带括号
如果你是一名摄影工作者,那么你的电脑里肯定会保存很多的图片,为了更好的整理和保存这些图片,比如一类主题的图片以相同文字命名并且编号,这样就方便以后查找了,解决办法有了,那么怎么给这么多图片命名并编号呢?
全栈程序员站长
2022/10/03
1.4K0
图片批量重命名编号不带括号的_批量重命名不带括号
方法调用
参数传递值传递:在 Java 方法中传递参数,形参本质是实参的副本。参数是基础数据类型:对形参的改变不会影响实参。参数是指向对象的引用(包括数组、字符串):对对象数据进行更改会影响实参,但改变引用指向的对象不会影响实参。public class Test{ public static void main(){ int i = 0; int[] arr = {0}; test(i, arr); System.out.print(i);
Qwe7
2022/08/03
1.9K0
私有属性/方法的访问
在属性/方法名前有双下划线的,称为私有属性/方法,私有属性/方法外部不能直接访问,
py3study
2020/01/17
1.9K0
Java 方法里面 调用异步的 方法
先把longTimeMethod 封装到Spring的异步方法中,这个方法一定要写在Spring管理的类中,注意注解@Async
一写代码就开心
2022/11/21
3.2K0
[inside hotspot] java方法调用的StubCode
众所周知jvm有invokestatic,invokedynamic,invokestatic,invokespecial,invokevirtual几条方法调用指令,每个负责调用不同的方法, 而这些方法调用落实到hotspot上都位于hotspot\src\share\vm\runtime\javaCalls.hpp的JavaCalls :
racaljk
2019/02/26
3.4K0
方法的定义和调用
为每个运算符单独的创建一个新的类和main方法,我们会发现这样编写代码非常的繁琐,而且重复的代码过多。能否避免这些重复的代码呢,就需要使用方法来实现。 方法:就是将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。 当我们需要这个功能的时候,就可以去调用。这样即实现了代码的复用性,也解决了代码冗余的现象。
共饮一杯无
2022/11/28
8410
方法的定义及调用
* 方法:其实就是完成特定功能的代码块 * 定义格式: * 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) { * 方法体; * return 返回值; * } * 格式解释: * A:修饰符 目前记住public static * B:返回值类型 用于限定返回值的数据类型 * C:方法名 为了方便我们调用方法的名字 * D:参数类型 用于限定调用方法时传入的数据的类型 * E:参数名 用于接收调用方法时传入的数据的
葆宁
2019/04/18
7410
宏程序的调用方法
② 当 M98 程序段包含其他 NC 指令(如:G01 X100.0 M98 P )时,在该指令执行完后调用子程序,而 G65 则无条件调用宏程序。
lrglu
2022/05/16
2.5K0
宏程序的调用方法
点击加载更多

相似问题

调用microservice的HttpGet IActionResult方法返回所有属性为null

11

MVC HttpGet属性

13

用actionLink调用控制器HttpGet方法

113

不带类的属性方法

20

FakeItEasy ControllerTest HttpGet调用

111
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文